我已经尝试在UISegmentedControl中将颜色设置为禁用分段。但还没有成功。我想知道是否可以在UISegmentedControl中为禁用的片段设置背景图像。
我尝试了以下代码,但它不起作用:
NSDictionary *attrs = @{ UITextAttributeTextColor : [UIColor lightGrayColor] };
[self.controlStatus setTitleTextAttributes:attrs forState:UIControlStateDisabled];
[self.controlStatus setBackgroundImage:[[UIImage imageNamed:@"img.png"] retain] forState:UIControlStateDisabled barMetrics:nil];前两条线路工作正常。禁用时,我可以设置颜色,但不能设置背景图像或背景颜色。
有没有办法做到这一点??
发布于 2015-05-12 18:26:44
更新:你必须按照下面的方法来做。
[[UISegmentedControl appearance] setBackgroundImage:[UIImage imageNamed:@"SegmentViewDisabled"]
forState:UIControlStateDisabled
barMetrics:UIBarMetricsDefault];如果你将分隔器图像设置为禁用状态,看起来你会遇到一个来自苹果终端的bug,找到了here
你可以这样做。其中SegmentViewDisabled是您的图像资产目录中的图像资产。
[self.controlStatus setBackgroundImage:[UIImage imageNamed:@"SegmentViewDisabled"] forState:UIControlStateDisable barMetrics:UIBarMetricsDefault];发布于 2015-05-12 18:43:51
UISegmentControl在两个段之间有一个分隔符。通过使用下面的代码,您可以更改分隔线背景。
[segmentedCtrl setDividerImage:[UIImage imageNamed:@"divider_selected.png"] forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[segmentedCtrl setDividerImage:[UIImage imageNamed:@"divider_normal.png"] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];发布于 2015-05-12 18:51:16
如果您需要自定义分段控件的外观,而不是标准着色,则可以考虑使用自定义图像来实现此目的。由于分段控件对于纵向和横向设备方向具有不同的指标,请记住为每组指标指定适当的图像。
您可以使用background image :barMetrics:方法为分段控件的每个控件状态设置背景图像。还应为左侧和右侧分段状态的每个组合指定分隔线图像,以使选定或高亮显示的分段具有与正常状态下的分段不同的外观,如下所示:
image1、image2、image3是不同的图像
[mySegmentedControl setDividerImage:image1 forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:barMetrics];
[mySegmentedControl setDividerImage:image2 forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:barMetrics];
[mySegmentedControl setDividerImage:image3 forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:barMetrics];https://stackoverflow.com/questions/30187738
复制相似问题