通常のボタンでできること
btn.selected = !btn.selected.
UIBarButton でそれを引き出すにはどうすればよいですか?
通常のボタンでできること
btn.selected = !btn.selected.
UIBarButton でそれを引き出すにはどうすればよいですか?
カスタムビューで UIBarButtonItem を作成できます
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:normalImage forState:UIControlStateNormal];
[button setImage:selectedImage forState:UIControlStateSelected];
[button addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:button];
それで
-(void)btnClick:(id)sender{
UIBarButtonItem *item = (UIBarButtonItem *)sender;
UIButton *button = (UIButton *)item.customView;
[button setIsSelected:YES];
}
UIBarItem 内でカスタム ボタンを使用することができます。
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:self.yourButton]
[self.navigationItem setRightBarButtonItem:barButton];
それで:
self.yourButton.select = !self.yourButton.select;
選択したプロパティを UIBarButtonItem からすぐに取得することはできません。ただし、UIButton を配置し、UIBarbutton のようにカスタマイズすることで、これを実現できます。このリンクはあなたにとってより便利です... UIBarButtonItems の状態をプログラムで取得するにはどうすればよいですか?
アイデア 1. IB でインターフェイスを作成している場合は、標準の UIButton オブジェクトを UIToolbar にドラッグしてみてください。これにより、UIBarButton 内に UIButton がカプセル化されます。UIBarButton オブジェクトをプレーンに設定します。いつものようにすべてへのアウトレットを作成します。次に、標準ボタンを、ツールバーの選択状態などの素敵な標準のものすべてと一緒に使用できます。
アイデア 2. ご覧のようにコントロールに柔軟性がないため、ツールバーの使用をほとんどあきらめました。今は、UIToolbar のインスタンスを UIViews に置き換えて、ローテーションやサイズ変更などを管理する必要があるコードの場合は少量を実行するだけです...より柔軟であることがわかったので、他のコントロールをより簡単に含めましょう。