【发布时间】:2010-12-31 16:04:50
【问题描述】:
我的问题围绕着 UINavigationBar 和 UIToolbar 上的 UISegmentedController 的区别。如果我将 UISegmentedControl 拖放到导航栏中,如下所示:
navigationBar.barStyle = UIBarStyleBlackTranslucent;
一切都很好。 UISegmentedControl 用稍深的黑色标识选定的选项。但是,如果我将 UISegmentedControl 放到 UIToolbar 上,它不会从工具栏中获取颜色或半透明度。如果我手动设置 tintColor UISegmentedControl 不再区分选中和未选中。
诚然,在拖放到 UIToolbar 之前,必须将 UISegmentedControl 包装在 UIBarButtonItem 中。我想知道这是否是 UISegmentedControl 看起来不正确(半透明黑色背景上的蓝色)的部分原因。
toolbar.barStyle = UIBarStyleBlackTranslucent;
UIBarButtonItem *item = [[[UIBarButtonItem alloc] initWithCustomView:segmentedControl];
NSArray *toolbarItems = [[NSArray alloc] initWithObjects:item,nil];
toolbar.items = toolbarItems;
当然,由于我使用的是内部导航和控制器工具栏,因此我的代码与编写的代码不完全相同,但一般逻辑是相同的。我不确定如何使 UIToolbar 上的 UISegmentedControl 具有黑色半透明样式 - 保持选定和未选定段之间的明显区别。
【问题讨论】:
-
这有帮助:'segmentedController.tintColor = [UIColor darkGrayColor];'但它创建了一个我不想引入的硬编码依赖项。例如,让用户选择配色方案稍微复杂一些。
-
你最后搞清楚了吗?
-
直到 Apple 将 UINavigation 着色逻辑实现到 UISegmentedControl 的 UIToolbar 中,我才被降级为使用 tintColor 属性。
标签: iphone uisegmentedcontrol uitoolbar