5

ナビゲーション バーの左側に 2 つのボタンが必要です。その方法を見つけた唯一の方法は、最初にそれらを UIToolbar に入れてから、 leftBarButtonItem をそれに設定することです。

これを行うと、通常どおり動作します (タップすると強調表示されます)。

UIBarButtonItem* myBtn = [[UIBarButtonItem alloc] initWithTitle:@"Button" style:UIBarButtonItemStyleBordered target:self action:@selector(doSomething:)];

self.navigationItem.leftBarButtonItem = myBtn;

しかし、このようにすると、ボタン アクションは引き続き発生しますが、ハイライトは表示されません (ボタンをタップしているという視覚的なフィードバックはありません)。

 NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:2];

 UIBarButtonItem* myBtn = [[UIBarButtonItem alloc] initWithTitle:@"Button" style:UIBarButtonItemStyleBordered target:self action:@selector(doSomething:)];

 UIBarButtonItem* myBtn2 = [[UIBarButtonItem alloc] initWithTitle:@"Button2" style:UIBarButtonItemStyleBordered target:self action:@selector(doSomethingElse:)];

 [buttons addObject:myBtn];
 [buttons addObject:myBtn2];

 UIToolbar* toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 133, 44)];
 [toolbar setItems:buttons animated:NO];
 self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:toolbar];

これにより、タッチしたときにボタンが強調表示されない理由は何ですか?

4

2 に答える 2

1

タッチアップしたときに UIBarButtonItem オブジェクトが強調表示されるとは思わない。ナビゲーションバーのデフォルトの戻るボタンでも、タッチアップすると強調表示されません。その方法でのみ機能します。確かではありませんが、単一のセグメントで UISegmentedControl を使用してみてください。強調表示された錯覚を作成する可能性があり、バーボタンのみのように見えます。

于 2011-04-09T06:28:22.280 に答える