【发布时间】:2009-12-12 19:15:32
【问题描述】:
当我将整个导航栏设置为黑色 (self.navigationController.navigationBar.tintColor = [UIColor blackColor];) 时,通常显示在所选按钮上的 UISegmentedControl 上的色调没有显示。
这是一个错误还是我遗漏了什么?
【问题讨论】:
标签: iphone uinavigationcontroller uinavigationbar
当我将整个导航栏设置为黑色 (self.navigationController.navigationBar.tintColor = [UIColor blackColor];) 时,通常显示在所选按钮上的 UISegmentedControl 上的色调没有显示。
这是一个错误还是我遗漏了什么?
【问题讨论】:
标签: iphone uinavigationcontroller uinavigationbar
为了显示色调,有几个要求:
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
tintColor 需要它才能工作。
您还提到您将tintColor 设置为[UIColor blackColor]。不幸的是,UISegmentedControl 将始终以 较深 的颜色显示选定的片段,而不是较浅的颜色。尝试将您的tintColor 设置为[UIColor darkGrayColor],您应该能够看到选定的段更改颜色。
【讨论】:
您是否尝试过单独设置分段控件的色调?
segmentedControl.tintColor = self.navigationController.navigationBar.tintColor;
【讨论】:
尝试使用淡色[UIColor colorWithWhite:80.0/255.0 alpha:1.0]。
这使黑色变得不那么黑,并允许选定的片段在选择后变得更暗。您可以根据需要设置白色组件。
示例代码:
UISegmentedControl *aSegmentedControl = [[UISegmentedControl alloc] initWithItems:arrItems];
aSegmentedControl.frame = CGRectMake(55, 382, 210, 32);
aSegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
aSegmentedControl.selectedSegmentIndex = 0;
aSegmentedControl.tintColor = [UIColor colorWithWhite:80.0/255.0 alpha:1.0];
【讨论】:
在 iphone 3.0 上,如果您想在 NavigationController 中添加分段控件,请先执行此操作,然后在您执行此操作后更改 tintcolor。
【讨论】:
如果您在导航栏上看到不同的色调,您可能还想在您的 uisegmentedcontrol 上使用瞬时属性。
segmentedControl.momentary=YES;
这会清除控件中的高亮色调。
【讨论】:
在属性检查器中将分段控件样式更改为 Bar 或 Bezeled。就是这样。
【讨论】: