我的问题围绕着 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 具有黑色半透明样式 - 保持选定段和未选定段之间的明显区别。