1

これは、ボタンをカスタマイズする現在の方法です。

UIAlertView *av = [[UIAlertView alloc] init];

[av addButtonWithTitle:@""];
UIButton *yesButton = [av.subviews lastObject];

[av show];

[yesButton setImage:[UIImage imageNamed:@"test.png"] forState:UIControlStateNormal];

これに伴う問題は、ボタンに設定した画像の周囲に元のビューがまだ表示されていることです。画像を完全にカプセル化するわけではありません。これが私がこれまでに持っているものの例です:

https://www.dropbox.com/s/htb9pfihwmel5oo/testimage.png

画像がボタン全体を完全に占めるようにする方法はありますか?

4

2 に答える 2

3

Sly Raskal の回答ほど堅牢ではないものを望んでおらず、簡単なハックが必要な場合は、既存のコードと同様に機能します。あなたはこのようなことをすることができます..もちろん、あなたが望むように新しいボタンフレームを変更することができます. また、UIAlertView を変数として定義して参照できるようにし、someAction: メソッドでそれを却下する必要があります。

UIAlertView *av = [[UIAlertView alloc] init];
[av addButtonWithTitle:@""];
UIButton *yesButton = [av.subviews lastObject];
[yesButton setHidden:YES];

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[av addSubview:button];
[av show];

[button setImage:[UIImage imageNamed:@"test.png"] forState:UIControlStateNormal];
[button addTarget:av action:@selector(someAction:) forControlEvents:[yesButton allControlEvents]];
[button setFrame:yesButton.frame];
于 2012-05-31T07:44:25.257 に答える
1

この場合、ボタンのスタイルを変更して見た目を変えるだけの場合は、簡単な方法で、このチュートリアルに従って、探している効果を実現します。

http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-uialertview-custom-graphics/

あなたが作成しているアプリケーションが App Store 向けのものである場合は、実装する変更が何であれ、プライベート API を使用したり、HIG に記載されているものに反したりしないことを確認してください。これらの状況のいずれかは、アプリが拒否されることを確実に警告します。

于 2012-05-31T07:26:48.360 に答える