【问题标题】:UISegmentedController - Change segments to imagesUISegmentedControl - 将片段更改为图像
【发布时间】:2013-07-10 21:49:09
【问题描述】:

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

!!!图片有: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:我已经改变了周围的图像。我只是认为有一些内置的方法。

【问题讨论】:

    标签: objective-c image uisegmentedcontrol


    【解决方案1】:

    您可以使用 HMSegmentedControlAKSegmentedControl 之类的名称。

    【讨论】:

      【解决方案2】:

      无法评论,所以在这里发帖。

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

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

      【讨论】:

      • 不完全。 setBackgroundImage 为整个分段控制器设置一个图像(所有段的一个图像,通常是拉伸的),而我需要一个用于段 1 的图像,另一个用于段 2。但我自己写的,在分段控件上向 ValueChanged 添加了一个操作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多