1

UIBarButtonItem の外観をカスタマイズしたいと考えています。現在使用しているコードは次のとおりです。

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(267, 6, 48, 30)];
[editButton setCustomView:button];  // editButton is the UIBarButtonItem

残念ながら、UIButton は描画されません。つまり、100% 透明です。次のようにコードに行を追加すると、ボタンがあることがわかります。

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(267, 6, 48, 30)];
[editButton setCustomView:button];  // editButton is the UIBarButtonItem
UIRectFill(button.frame);

ボタンが表示されるはずの位置に黒い四角が表示されます。

UIButton を描画するにはどうすればよいですか? 私はすでにたくさんの場所を見てきましたが、何もうまくいかないようです...

4

4 に答える 4

0

私も同様の問題を抱えていました。ボタンは表示されず、そのスペースをタップしても何も起こりませんでした。ボタンの境界を設定することは、それを機能させる魔法のように見えました。

右ボタンを設定するために使用しているコードは次のとおりです。

UIButton* addButton = [UIButton buttonWithType:UIButtonTypeCustom];
[addButton addTarget:self action:@selector(onAdd) forControlEvents:UIControlEventTouchUpInside];
[addButton setImage:[UIImage imageNamed:@"button_plus.png"] forState:UIControlStateNormal];
addButton.bounds = CGRectMake(0, 0, 30, 30);
UIBarButtonItem* addItem = [[UIBarButtonItem alloc] initWithCustomView:addButton];
navitem.rightBarButtonItem = addItem;
于 2012-03-30T13:51:57.810 に答える
0

この質問に対する私の回答を参照してください。

UIButtona の中に aを入れない方がいいと思いますUIBarButtonItem。それらは多かれ少なかれ同じことを行い、BBI が存在するのには理由があります。UIButton に比べて軽量であり、UINavigationItems.

あなたが達成しようとしている全体的な目的は何ですか?そうすることで、実行可能なソリューションを提供することができます。

于 2012-03-01T02:33:18.623 に答える
0

ボタンのカスタム ビューを別のボタンに設定することはできないと思います。ボタンは複雑なオブジェクトであり、通常、そのようにネストすることはできません。

カスタム ビュー属性は、機能ではなく装飾用であると想定されています。UIBarButtonItem に必要な外観のカスタム ビューをロードし、実際のボタン ロジックを処理させる必要があります。

于 2010-02-27T13:27:48.557 に答える
0

UIImageView であるカスタムビューで初期化しようとしましたか? それが機能する場合は、ここで説明されているように、従来の UIButton を偽造するような方法で UIImageView を作成できます。

iPhone SDK で大きな赤い UIButton を作成するにはどうすればよいですか?

しかし、より一般的に言えば、UI の観点からすると、「UIBarButtonItem」の場所にクラシックな「UIButton」があるのは奇妙です:/

于 2010-02-27T19:37:54.393 に答える