这是我定制按钮的当前方式:
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
是否有任何方式使图像完全占据整个按钮?
答案 0 :(得分: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];
答案 1 :(得分:1)
如果在这种情况下,您所做的只是将按钮设计为不同的样式,但是以简单的方式,我将按照本教程来完成您正在寻找的效果:
http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-uialertview-custom-graphics/
如果您正在创建的应用程序发往App Store,我只想提及您实施的任何更改,请确保它不使用任何私有API或违反HIG中记录的任何内容。这些情况中的任何一种都肯定会使您的应用程序被拒绝。