询问用户意见,使用自定义 UIAlertView,要批准的限制是多少?



我正在创建一个应用程序,在一个时刻,我想问用户的意见与自定义UIAlertView。经过大量的研究和阅读,我对一些事情有点困惑……

我们可以添加什么对象(UITextfields, UIImages…)到UIAlertView

因为我发现了这个:

UIAlertView类打算按原样使用,但没有支持子类化。这个类的视图层次结构是私有的和

但这是可以接受的,例如:

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"title" message:@"msg" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
UITextField *txtField = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 45.0, 260.0, 25.0)];
[alertView addSubview:txtField];
[alertView show];
[alertView release];

(更多信息见此链接)

因此,例如,如果我不想要带有message和title参数的蓝框,我是否可以只执行以下代码:
UIAlertView *alert = [[UIAlertView alloc] init];
[alert addSubview:a_UIButton];
[alert addSubview:a_UIImageview]; 
[alert show];
所以有了这种类型的代码,我可以得到的优势(如果它的工作!)在暂停模式下所有的应用程序,所有的将是自定义的。但这可能吗?会被拒绝吗?

而不是尝试自定义" UIAlertView ",为什么不只是创建自己的自定义AlertView(从" UIView "),并添加作为子视图,当你想要显示它?

我们不知道苹果是否(或如何)会在未来的iOS版本中改变UIAlertView的内部架构(例如iOS 7),这会打破所有应用程序中对它所做的各种自定义。这就是为什么苹果在他们的文档中提出了这个警告。

我建议你做一个自定义UIView,然后用类似于UIAlertView的动画来显示它。然后,你可以添加任何你想要的UI元素。如果文档说视图层次结构是私有的,我就别管它了。

如果你想做的只是在警报视图中添加一个文本字段,iOS 5及以后的版本都支持这个功能:

[alertView setAlertViewStyle:UIAlertViewStylePlainTextInput];

最新更新