UIAlertView自定义中的iOS 7 UIDatePicker

时间:2013-09-19 12:29:14

标签: ios uialertview uidatepicker ios7

伙计我正在将UIDatePicker添加到UIAlertView,如this

enter image description here

iOS 6及以下版本在iOS 7中很好用,就像这样

enter image description here

为什么会这样?有没有更好的方法呢?。感谢任何帮助。

5 个答案:

答案 0 :(得分:8)

您可以在iOS7的标准提醒视图中将 accessoryView 更改为任何自己的 customContentView

[alertView setValue:customContentView forKey:@"accessoryView"];

请注意,您必须在 [alertView show] 之前调用此方法。

最简单的说明示例:

UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"TEST" message:@"subview" delegate:nil cancelButtonTitle:@"NO" otherButtonTitles:@"YES", nil];
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 50)];
v.backgroundColor = [UIColor yellowColor];
[av setValue:v forKey:@"accessoryView"];
[av show];

enter image description here

完全按照添加 DatePicker 的方式。

答案 1 :(得分:3)

没有解决方法。从未支持将子视图添加到UIAlertView,在iOS 7中,这会导致子视图无法显示。 Apple开发者论坛上发布了一些解决方法,但在将来的版本中可能很容易破解。

我建议提交错误报告。许多其他人(包括我自己)已经做到了这一点,苹果公司获得的请求越多,其优先级就越高。

编辑:我编写了一个允许添加子视图的UIAlertView克隆:SDCAlertView

答案 2 :(得分:3)

在iOS7上,您应该使用UIModalPresentationCustomtransitioningDelegate在UIKit中使用新的自定义模态转换支持。

使用这些视图,您可以创建类似于警报视图的视图,但可以自定义,您可以在其中添加日期选择器。

更多信息: https://developer.apple.com/library/ios/documentation/uikit/reference/UIViewControllerTransitioningDelegate_protocol/Reference/Reference.html#//apple_ref/occ/intf/UIViewControllerTransitioningDelegate

答案 3 :(得分:3)

这是我在AlertView中支持addSubview的组件。

CXAlertView - 自定义提醒视图,可让您将视图添加为主要内容。

enter image description here

答案 4 :(得分:1)

它不受支持,我不相信他们“解决了这个问题”..滚动您自己的警报视图或使用开源替代方案。另见UIAlertView addSubview in iOS7