【iOS奇葩特性】layoutSubviews在iPhone和iPad中,当设备方向改变后的调用情况
2015-08-21 11:29
381 查看
本文记录最近遇到的一个奇葩问题,以下是验证过程。
1、使用Xcode6 新建一个项目,设备“Devices”这个选项一定要选择“Universal”。
2、新建一个类,名字随便起,但是一定是UIView或者它的子类。我这里继承的是UIImageView,类名为LamImageView。然后在新建的类的“.m”文件中复写layoutSubviews方法,并在方法里打上一个断点。
3、在默认的ViewController.m文件中导入上一部新建的文件,并实例化一个LamImageView对象,代码如下:
LamImageView *im = [[LamImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 80)];
im.image = [UIImage imageNamed:@"title_1.png"];
[self.view addSubview:im];
以上是准备过程,下面开始验证:
4、Xcode选择iPhone模拟器,运行。然后发现触发了两次断点(为什么是两次这里都不多说,想了解的朋友可以去搜一下相关资料),跳过断点,再使用command+左/右方向键改变模拟器的方向,发现又触发了断点。说明啥问题,说明iPhone设备方向改变后还会调用layoutSubviews方法。
5、Xcode选择iPad模拟器,运行。也触发了断点,但是当改变模拟器方向后,断点没有被触发。是不是就说明,iPad的设备方向改变不会调用layoutSubviews方法。
由此得出:
iPhone:设备方向发生改变时,调用layoutSubviews方法。
iPad:设备方向发生改变时,不调用layoutSubviews方法。
整个验证过程到此结束,希望对大家有所帮助。
1、使用Xcode6 新建一个项目,设备“Devices”这个选项一定要选择“Universal”。
2、新建一个类,名字随便起,但是一定是UIView或者它的子类。我这里继承的是UIImageView,类名为LamImageView。然后在新建的类的“.m”文件中复写layoutSubviews方法,并在方法里打上一个断点。
3、在默认的ViewController.m文件中导入上一部新建的文件,并实例化一个LamImageView对象,代码如下:
LamImageView *im = [[LamImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 80)];
im.image = [UIImage imageNamed:@"title_1.png"];
[self.view addSubview:im];
以上是准备过程,下面开始验证:
4、Xcode选择iPhone模拟器,运行。然后发现触发了两次断点(为什么是两次这里都不多说,想了解的朋友可以去搜一下相关资料),跳过断点,再使用command+左/右方向键改变模拟器的方向,发现又触发了断点。说明啥问题,说明iPhone设备方向改变后还会调用layoutSubviews方法。
5、Xcode选择iPad模拟器,运行。也触发了断点,但是当改变模拟器方向后,断点没有被触发。是不是就说明,iPad的设备方向改变不会调用layoutSubviews方法。
由此得出:
iPhone:设备方向发生改变时,调用layoutSubviews方法。
iPad:设备方向发生改变时,不调用layoutSubviews方法。
整个验证过程到此结束,希望对大家有所帮助。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器
- IOS开发第三方语音-微信语音
- iOS开发之路--微博OAuth授权_取得用户授权的accessToken
- ios通过按钮点击异步加载图片
- 加载带有手势识别器的XIB文件需注意哪些问题
- 仅需几行代码实现方便易用的状态栏指示器