UIAlertView自定义中的iOS 7 UIDatePicker

伙计们,我正在像这样将UIDatePicker添加到UIAlertView

在这里输入图像说明

iOS 6以及iOS 7以下的版本都是如此

在这里输入图像说明

任何想法为什么发生这种情况 有没有更好的方法做这个?任何帮助表示赞赏。

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

CXAlertView – 自定义警报视图,允许您将视图添加为主要内容。

在这里输入图像说明

您可以在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]; 

在这里输入图像说明

完全一样,您可以添加DatePicker

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

使用这些,您可以创build一个类似于警报视图的视图,但是可以添加dateselect器的自定义视图。

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

没有解决这个问题。 从来没有支持将子视图添加到UIAlertView,在iOS 7中这导致子视图不显示。 苹果开发者论坛上已经发布了一些解决方法,但是在未来的发行版中可能会很容易被破解。

我build议提交一个错误报告。 其他许多人(包括我自己)也是这样做的,苹果公司获得的要求越多,优先级就越高。

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

这是不支持,我不相信他们'解决这个'..滚动自己的警报视图或使用开源替代品。 另请参阅iOS7中的UIAlertView addSubview