关闭

UIScrollView添加AutoLayout的ambiguous content size警告解决方法

378人阅读 评论(0) 收藏 举报
分类:

如果你在使用auto Layout 时看到这个警告,那无疑是给UIscrollView的subView设置的限制。我起初以为是少添加了的限制,确认之后,该有的都有了!至少如果是uiview的话,设置是对的,原来uiscrollView真是个特殊的控件,它有contentSize这个属性!

什么意思呢?我们都知道在使用uiscrollView时,我们会手动设置contentSize,但在使用storyBoard或xib时,如果不手动设置,auto Layout是怎么自动设置contentSize呢?原来uiscrollView在使用auto Layout时,是会自动根据它的内容(subView)来自动确定contentSize的大小的,而subView又由自身的size和限制两部分决定的,知道这个就好办了。

我们知道,通过设置leading/trailing/top/bottom限制就可以确定控件的的大小和位置,而leading/trailing/top/bottom是相对于父控件(参照控件)的bounds(边界)的。但是uiscrollView的leading/trailing/top/bottom是相对contentSize的边界的,如果仅仅uiscrollView的subView的leading/trailing/top/bottom仅仅是确定了限制,空间的大小还是不知道的,导致contentSize无法确定。此时如果在设置subView的大小,则警告就消失了。

那问题又来了,如果我要在scrollView上显示图片,但图片是从网络上下载的,无法确定其大小,怎么办?还是有办法的,此时就不设置subView的大小了,取而代之的是通过临时的占位尺寸来告诉 storyboard,不会印象运行时的尺寸,具体操作是设置size inspector的intrinsic size属性为placeholder(图片的最下面):


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:89696次
    • 积分:2271
    • 等级:
    • 排名:第16639名
    • 原创:134篇
    • 转载:52篇
    • 译文:0篇
    • 评论:9条
    最新评论