美文网首页iOS开发iOS学习iOS开发
动态设置ScrollView的contentSize

动态设置ScrollView的contentSize

作者: djing | 来源:发表于2016-12-05 10:07 被阅读157次

       很多开发中,都需要适配不同的屏幕,因此,UIScrollView会用的比较多.这里,我说明一种UIScrollView的使用情况.

       由于我的界面有一些附件类型,比如声音,图片,文件之类的,用到了一个按钮去展开和收起附件视图,这个时候,就对UIScrollView的滚动有要求了,如果设定一个定值,没有展开附件视图的时候,视图会滚动,流出大片空白.另外由于附件内容不确定,多少也不确定,计算起来也比较麻烦,而且界面多了,每个界面都需要计算一次,比较麻烦.

    解决办法是: 在控制器的viewDidLayoutSubviews中,可以获取视图真实的frame(我使用的约束,在这里也可以得到正确的frame).同时,viewDidLoad中也要写上

-(void)viewDidLoad{

[self.view setNeedsLayout];

[self.view layoutIfNeeded];

}

这样,可以在viewDidLayoutSubviews中得到你最下面视图的frame, 例如testView.

通过下面两句设置scrollView的contentSize

-(void)viewDidLayoutSubviews{

[super viewDidLayoutSubviews];

CGFloat maxh = CGRectGetMaxY(self.testView.frame) ;

self.scrollView.contentSize = CGSizeMake(0, math);

}

注意: 获取的是视图frame的最大y值,你也可以自己添加多一点,来控制scrollView的滚动范围

相关文章

网友评论

    本文标题:动态设置ScrollView的contentSize

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