私の問題は、UIControlStateHighlightedでUIBarButtonItemのタイトルラベルの正確な色を設定できないことです。強調表示されたタイトルラベルの上部に暗い「カラーオーバーレイ」が追加されていると思われますが、これを無効にする方法はわかりません。UIBarButtonItemのタイトルラベルを取り除く方法は、ハイライトされた状態で暗くなります
私は外観を介して設定されたタイトルテキストをUIBarButtonItemを持って、私は通常の正確な色を必要と状態を強調し、私はUIBarButtonItemsをこのように構成した:UINavigationBarにUIBarButtonItemを追加する
UIBarButtonItem *barButtonItemAppearance = [UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil];
NSDictionary * textAttributes = @{
NSForegroundColorAttributeName : blueColor,
};
[barButtonItemAppearance setTitleTextAttributes:textAttributes forState:UIControlStateNormal];
NSDictionary * selectedTextAttributes = @{
NSForegroundColorAttributeName : whiteColor
};
[barButtonItemAppearance setTitleTextAttributes:selectedTextAttributes forState:UIControlStateHighlighted];
コード:
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *logoutButtonItem = [[UIBarButtonItem alloc] initWithTitle:title
style:UIBarButtonItemStylePlain
target:target
action:action];
[self.navigationItem setRightBarButtonItem:logoutButtonItem];
}
添付のスクリーンショットをご覧ください。
私は強調表示されたバーボタンがちょうど白になりたいです。 UIButtonをUIBarButtonItemのcustomViewプロパティにタイトルとして追加しようとしました。通常の状態と強調表示された状態のUIButtonを設定しました。
UIButton *customButton = [UIButton buttonWithType:UIButtonTypeCustom];
[customButton setTitle:title forState:UIControlStateNormal];
[customButton setTitleColor:blueColor forState:UIControlStateNormal];
[customButton setTitleColor:whiteColor forState:UIControlStateHighlighted];
[customButton sizeToFit];
[customButton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:customButton];
は、それは私の問題を修正し、多分UIButtonを追加することなく、別の方法で、より多くのよりよい解決策があります:これは素晴らしい作品、私はハイライト表示にちょうど明確な白い色が表示されないのですか?
通常、強調表示された状態でtitleTextAttributesを追加しました。しかし、アイテムが強調表示されているときに私が得るのは、色が暗くなることです。 –
タイトルカラーのプロパティもあります あなたもそれを設定する必要があります –