【问题标题】:setting background image of UISegmentedControl设置 UISegmentedControl 的背景图片
【发布时间】:2012-05-31 04:58:30
【问题描述】:

所以我有以下代码来设置分段控件的背景颜色:

UISegmentedControl * segmentedCtrl = [[UISegmentedControl alloc] initWithFrame:CGRectMake(0, 0, 150, 35)];
[segmentedCtrl setBackgroundImage:[UIImage imageNamed:@"btn-gradient-brown"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[segmentedCtrl setBackgroundImage:[UIImage imageNamed:@"btn-gradient-brown"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[segmentedCtrl insertSegmentWithImage:[UIImage imageNamed:@"icon-home.png"] atIndex:0 animated:NO];
[segmentedCtrl insertSegmentWithImage:[UIImage imageNamed:@"icon-star.png"] atIndex:1 animated:NO];

一切都很好,只是当我点击片段时,我可以看到突出显示的蓝色按钮。如何禁用此突出显示?这是我的问题的屏幕截图:

【问题讨论】:

    标签: iphone objective-c ios ipad uisegmentedcontrol


    【解决方案1】:

    UISegmentControl 在两个段之间有一个 Divider。通过使用以下代码,您可以更改分隔线背景。

    [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];
    

    其中 divider_selected.png 是您用于选定状态的图像。其中 divider_normal.png 是您用于正常状态的图像。

    希望这会有所帮助....

    【讨论】:

    • 分割图像的大小是多少??
    • 我有 5 × 56。这个高度可能会根据您的段控制高度而有所不同。
    • 我正在这样做,但是我的 segmentedCtrl 的框架被放大了 5 个像素!我究竟做错了什么?分隔线图片是否有任何要求(如透明度等)?
    【解决方案2】:

    为突出显示的状态设置相同的背景图像:

    [segmentedCtrl setBackgroundImage:[UIImage imageNamed:@"btn-gradient-brown"] forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
    

    【讨论】:

      猜你喜欢
      • 2012-05-14
      • 2011-12-15
      • 2011-03-24
      • 1970-01-01
      • 2013-02-13
      • 2023-03-25
      • 1970-01-01
      • 2020-11-21
      • 2015-05-09
      相关资源
      最近更新 更多