如何使黑色 UISegmentedControl 显示为可见的选择突出显示?
Posted
技术标签:
【中文标题】如何使黑色 UISegmentedControl 显示为可见的选择突出显示?【英文标题】:How can I make a black UISegmentedControl show up with a visible selection highlight? 【发布时间】:2011-11-02 14:47:02 【问题描述】:我在工具栏中有一个简单的分段控件。它有黑色调。 When one of the segments is selected, there is no visual indicator to show this.现在通常它会使选定的部分变暗,但你不能变暗黑色。当按下普通按钮栏按钮时,它会变为浅灰色以表示它已被按下。我怎样才能对分段控件做同样的事情?
【问题讨论】:
【参考方案1】:你可以玩弄 tintColor
NSString *firstStr = @"ABC";
NSString *secondStr = @"Catégories";
NSArray *arTemp = [[NSArray alloc] initWithObjects:firstStr, secondStr, nil];
UISegmentedControl *segment = [[UISegmentedControl alloc] initWithItems:arTemp];
[arTemp release];
arTemp = nil;
segment.segmentedControlStyle = UISegmentedControlStyleBar;
segment.tintColor = [UIColor darkGrayColor];
【讨论】:
不是我想要的。我只需要将选定的段设为灰色,而不是所有段。 我知道这与您想要的相反;选中的是黑色,未选中的是深灰色。我已经很久没有写那个代码了,在一些失败的测试之后,我就这样走了。【参考方案2】:你看过ios5的新外观代理吗?那应该可以帮到你。
如果您还需要 ios5 之前的支持,我所看到的是制作您自己的分段控件很容易——就像一组带有自定义背景图像的按钮一样简单(当一个按钮取消选择其他按钮时)按钮被选中)或更彻底的方法,如idevrecipes.com上的这篇文章中所述
上面链接中的网站也很好地讨论了如何为分段控件制作按钮图像并切断大写。
第三个想法是,您采用常规分段控制,将色调设置为比黑色略浅的灰色阴影,然后使用触摸事件(内部触摸,外部触摸)基本上反转分段控件的正常行为,使控件上的黑色按钮的行为就像它是选定的一样。但是我认为这违背了苹果的意图(尽管这是 iOS5 中新的提醒应用程序所做的),而且我还没有尝试过它是否有任何细微的细微差别会使它不起作用。
李>我想听听您最终是如何解决这个问题的。祝你好运!
【讨论】:
以上是关于如何使黑色 UISegmentedControl 显示为可见的选择突出显示?的主要内容,如果未能解决你的问题,请参考以下文章
如何使单个 UISegmentedControl 部分检测多个触摸
如何使最新的 UISegmentedControl 选项卡在单击它的应用程序会话期间持续存在?