美文网首页iOS专题iOS DeveloperiOS 开发
适配iOS6时,scrollView中遇到的一个问题

适配iOS6时,scrollView中遇到的一个问题

作者: Levi_ | 来源:发表于2015-07-23 10:32 被阅读631次

    scrollView中使用AutoLayout布局,在viewDidLoad中设置了contentSize属性。发现在iOS6中运行时,scrollView无法滚动,即contentSize并不符合在viewDidLoad中设置的大小。
    最终发现问题如下:
    iOS6中的AutoLayout机制,在viewDidLoad函数被执行后,AutoLayout会重新把contentSize修改为符合屏幕大小的数值,也就是说,现在的contentSize又适合了屏幕大小,并没有大于UIScrollView本身内容的大小。
    解决办法:
    在viewDidAppear方法中给scrollView设置contentSize属性:

    - (void)viewDidAppear:(BOOL)amimated
    {
        [super viewDidAppear:animated];
        _scorllView.contentSize = CGSizeMake(width,height);
    }
    

    这个函数会在autoLayout之后执行,也就是说,在iOS6中,autoLayout执行在viewDidLoad及viewWillAppear之后,并执行在viewDidAppear之前。
    另外延伸的说一下,在Xib中做页面布局并使用AutoLayout时,布局会发生在viewWillAppear之后和viewDidAppear之前,所以,想得到布局完成的View进行查看或操作,至少要等到viewDidAppear执行时。

    相关文章

      网友评论

        本文标题:适配iOS6时,scrollView中遇到的一个问题

        本文链接:https://www.haomeiwen.com/subject/pnopqttx.html