UISegmentedControl - 将段更改为图像

时间:2013-07-10 11:15:46

标签: objective-c image uisegmentedcontrol

基本上,我想用四个图像创建一个分段控制器。

!!!图像包括:segment1_unselected,segment1_selected,segment2_unselected,segment2_selected。

如果您选择了段背景,我已经阅读了很多关于这样做的教程, 段背景未选中,段中间,左选,右未选,段中,左未选,右选,段中,左和左;右选,中段,左和左没有选择,但我没有。 (我认为自从老师为我提供了这些图像以来,我可以用4幅图像完成它。)

现在我已设法添加图像,但后来我不知道如何添加所选图像。

UISegmentedControl * segmentedCtrl = [[UISegmentedControl alloc] initWithFrame:CGRectMake(13, 130, 294, 34)];
[segmentedCtrl setBackgroundImage:[UIImage imageNamed:@"scr1_btneveryone"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[segmentedCtrl setBackgroundImage:[UIImage imageNamed:@"scr1_btnfriends"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[segmentedCtrl insertSegmentWithImage:[UIImage imageNamed:@"scr1_btneveryone1"] atIndex:0 animated:NO];
[segmentedCtrl insertSegmentWithImage:[UIImage imageNamed:@"scr1_btnfriends"] atIndex:1 animated:NO];

编辑:嗯,我有点愚蠢...我做的是我通过创建一个ValueChanged的动作,然后使用setImage:forSegmentAtIndex写了“改变图像(也就是选择一个片段):我是改变了周围的图像。我只是觉得有一些内置的方法。

2 个答案:

答案 0 :(得分:0)

您可以使用 HMSegmentedControlAKSegmentedControl等内容。

答案 1 :(得分:0)

无法评论,因此在此发布。

您可以使用外观协议更改背景图像。一些示例代码:

[[UISegmentedControl appearance] setBackgroundImage:[UIImage imageNamed:@"toggle_blue.png"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

[[UISegmentedControl appearance] setBackgroundImage:[UIImage imageNamed:@"toggle_grey.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];