这是我正在我的自定义按钮,当前的方法:
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
反正是有让这个形象完全占据整个按钮?
如果您wan't东西是不一样强大狡猾Raskal的答案,只是希望得到一个快速的黑客,那工作原理类似于现有的代码。 你可以这样做this..Of当然你也可以更换新的按钮框架,以匹配你想要的。 此外,你必须定义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];
如果在这种情况下,所有你做的是造型的按钮看起来不同,但在一个简单的方式,我会按照这个教程来完成你正在寻找的效果:
http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-uialertview-custom-graphics/
如果你创建的应用程序是注定为App Store,我只是想还提到,无论你更改实施,确保它不使用任何私有API的或违反任何在HIG记录。 无论是哪种情况下是肯定要去红旗您的应用程序拒绝。