UIAlertController中的自定义视图

ten*_*ing 3 custom-controls subview custom-view ios uialertcontroller

我想把一个自定义视图放在一个UIAlertController.我在调整自定义视图的大小时遇到​​了一些奇怪的问题.

我想自定义视图跨越的宽度UIAlertController,无论可能是什么.我正在使用CGRectGetWidth(alertController.view.bounds)获取警报控制器的宽度.但是,这似乎是返回整个视图的宽度.使用view.frame并没有什么区别.

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"My Title" message:nil preferredStyle:UIAlertControllerStyleAlert];

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(alertController.view.bounds), 50)];
view.backgroundColor = [UIColor blueColor];

[alertController.view addSubview:view];
[self presentViewController:alertController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

这产生了以下结果.我有同样的问题试图获得的X,Y宽度和高度属性UIAlertController.有没有人知道如何在不使用硬编码数字的情况下将此视图放在警报控制器的中间?

在此输入图像描述

Dun*_*n C 6

你不应该这样做.引用文档:

UIAlertController类旨在按原样使用,不支持子类化.

此类的视图层次结构是私有的,不得修改.

如果你反对像Apple这样明确的声明,所有的赌注都已关闭,即使你可以让它在当前的操作系统版本上工作,它也可能会破坏任何未来的版本.