Ios UIAlertController半透明性故障/缺陷

Ios UIAlertController半透明性故障/缺陷,ios,cocoa-touch,uialertcontroller,Ios,Cocoa Touch,Uialertcontroller,当iOS显示警报时,半透明度保持不变。当我的应用程序显示一个警报时,警报一开始是白色的,仅持续半秒,然后变成半透明。这是一个小问题,但看起来很混乱,我认为警报应该在任何地方都保持一致。总之,代码如下: UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"Invalid Credentials" message:@"Please try again." preferredStyle:UIAlertCo

当iOS显示警报时,半透明度保持不变。当我的应用程序显示一个警报时,警报一开始是白色的,仅持续半秒,然后变成半透明。这是一个小问题,但看起来很混乱,我认为警报应该在任何地方都保持一致。总之,代码如下:

UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"Invalid Credentials" message:@"Please try again." preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
    [_username becomeFirstResponder];
}];
[alertVC addAction:ok];
[self presentViewController:alertVC animated:YES completion:NULL];

我对这里的人们的意见也很感兴趣。这对任何人来说都是一个微不足道的问题吗?看起来这就是
UIAlertController
的工作方式(至少当开发人员使用它时)。无论如何,它看起来很混乱,我会认为它是一个bug(除非我做错了什么),因为它不像IOS提出警报时一样,即使它应该是。

<强>免责声明< /强>:这是部分意见、部分受过教育的猜测和部分经验。 UIAlertController有两个主要部分:黑色背景和消息视图。黑色背景似乎是用于弹出窗口的非常标准的深灰色/黑色透明视图。消息视图似乎使用了与
UIToolbar
UINavigationController
相同的模糊类型

UIAlertController
转换所用的动画是在黑暗背景下淡入,以及在消息视图上淡入和收缩的组合。在模糊的视野中,褪色并不是那么困难;iOS通常只使用透明视图,并捕捉到
0.999的
alpha
上方的模糊视图。那是一个收缩的动画…这就是魔力所在

这不仅仅是调整框架大小,消息视图的内容实际上也会改变大小

有趣的是,苹果公司的一位员工决定改变文本大小的动画,使其看起来像是在屏幕上着陆,而不是仅仅调整消息视图的帧大小并使文本以静态大小淡入

标签、按钮和帧大小的变化,加上模糊中的淡入淡出,为一个相当简单的视图增加了相当多的复杂性。因此,与处理每个单独的问题不同,似乎有人决定使用视图的快照,设置比例变化的动画,然后在初始动画完成后“过渡”到所需的外观


至于为什么操作系统中的消息不是这样…狗粮

对于我来说,相同的问题是由Info.plist文件中的标志“使用边缘抗锯齿渲染”设置为“是”引起的。
它曾被设置为改进模拟器tableview渲染,谁知道它会影响设备上的系统警报渲染

你正在使用哪个版本的iOS。8.2、8.3和simulatorI也注意到了UIAlertViews的相同问题。我想这可能只是狗食。你在制作其他UI动画时启动它吗?似乎没有解决方案,因此你得到了解释问题的赏金。我会发送一个bug报告,即使每次我做一个,它都会被标记为重复,尽管这个问题已经存在多年了,但它从未得到修复。[自我容忍];