【iOS开发】一个关于UIAlertController的诡异现象

今天无意间发现iOS中UIAlertController一个很诡异的bug——UIAlertController添加两个UIAlertAction,只要其中任意一个Action的title超过5个汉字时就不会在同一行显示(设备为iPhone 6 plus、iOS10.3.1)。如下所示:

【iOS开发】一个关于UIAlertController的诡异现象_第1张图片
01
【iOS开发】一个关于UIAlertController的诡异现象_第2张图片
02

因为平时几乎是用自己的手机(iPhone 6s、iOS10.3.1)且是正常显示的(两个action同一行),所以直到今天才发现这个奇怪的现象。iPhone 6s正常显示如下:

【iOS开发】一个关于UIAlertController的诡异现象_第3张图片
03
【iOS开发】一个关于UIAlertController的诡异现象_第4张图片
04

经过多次验证发现,在iPhone 6 plus上,iOS10.3.1环境下,只要两个action中任意一个的title的长度大于5个汉字就会不同行显示。英文title也会出现类似现象。

【iOS开发】一个关于UIAlertController的诡异现象_第5张图片
05


【iOS开发】一个关于UIAlertController的诡异现象_第6张图片
06
【iOS开发】一个关于UIAlertController的诡异现象_第7张图片
07

在模拟器中并没有发现这个奇怪的现象。以为是plus系列才会有的,但是问过了同事,她们的显示也是正常的,她们的设备分别为iPhone 7 plus、iPhone 6s plus,系统都是iOS10.3.1。其实我也要料到了,她们的设备是显示正常的,要是不正常她们早就说出来了。

【iOS开发】一个关于UIAlertController的诡异现象_第8张图片
08

测试代码很简单,点击控制器弹出AlertController,添加两个UIAlertAction,不断改变action的title进行一一验证。如下所示:

【iOS开发】一个关于UIAlertController的诡异现象_第9张图片
09

完整代码在这里:FuckingAlertControllerOniPhone6Plus

我们都知道早在2014年iOS8发布的时候,Apple出了这个API,用来替换UIAlertView和UIActionSheet。想不到三年多过去了,还会出现如此诡异的bug!!其实在使用UIAlertController的过程中,我们也会碰到一些其它问题,比如有时会弹不出来(想必大多数开发中遇到过吧)PS:本文这个问题有童鞋遇到过吗?

你可能感兴趣的:(【iOS开发】一个关于UIAlertController的诡异现象)