在iOS 8上运行我们的应用程序时,我有与UIAlertView有关的问题.
我正在显示标题为nil的警报.它在iOS 7中正常工作,但现在UI看起来很奇怪.
我正在显示标题为nil的警报.它在iOS 7中正常工作,但现在UI看起来很奇怪.
我已经在这里附加了截图.
我发现一个解决方案是当我提供空字符串@“”它看起来不错.见下面的截图.但我不知道我提到的问题是测试iOS 8版本中的错误,还是有其他更好的解决方案.即使是解决方案,它并不完全符合iOS 7的要求.
解决方法
对于UIAlertView,UIActionSheet从iOS 6开始,我使用initWithTitle:@“”是最好的做法,因为我正在使用initWithTitle:nil时遇到设计问题.我试图找回来,我找不到它究竟是什么原因.
从iOS 8上的屏幕截图,我认为UIAlertView for iOS 8上的视图层次结构有所改变.我认为Auto布局可能会在视图hierarachy上实现,您可以看到messageLabel跳转到titleLabel.
我不能确定,因为UIAlertView的视图层次结构是私有的.
The UIAlertView class is intended to be used as-is and does not
support subclassing. The view hierarchy for this class is private and
must not be modified.
但是,我使用的代码:
NSLog(@"%@",[self.alertView description]);
iOS 7.1结果:
<UIAlertView: 0x7fb3c05535b0; frame = (18 263; 284 62); opaque = NO; layer = <CALayer: 0x7fb3c0519810>>
iOS 8.0上的结果:
<UIAlertView: 0x7bf64840; frame = (0 0; 0 0); layer = <CALayer: 0x7bf648f0>>
我不知道为什么iOS 8的UIAlertView框架是(0 0; 0 0);
像Mike说的,我想你应该学会使用UIAlertController for iOS 8.