我的問題圍繞UINavigationController UINavigationBar與UIToolbar的區別。如果我將UISegmentedControl拖放到導航欄中,如下所示:UISegmentedControl顏色在UIToolbar中
navigationBar.barStyle = UIBarStyleBlackTranslucent;
一切都很好。 UISegmentedControl使用稍深的黑色標識選定的選項。但是,如果我將UISegmentedControl拖放到UIToolbar上,它不會從工具欄中拾取顏色或半透明度。如果我手動設置tintColor,則UISegmentedControl不再區分已選擇和未選中。
無可否認,必須先將UISegmentedControl包裝到UIBarButtonItem中,然後再放到UIToolbar上。我想知道如果這是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];'但它創建了一個硬編碼的依賴關係,我不想介紹它。例如,讓用戶選擇配色方案稍微複雜一些。 – 2010-01-01 22:43:19
你最終弄清楚了嗎? – DenNukem 2010-04-09 21:38:47
直到Apple爲UISegmentedControl實現UINavigation着色邏輯到UIToolbar之前,我已被降級爲使用tintColor屬性。 – 2010-04-10 14:18:45