美文网首页iOS移动开发iOS ProcessiOS 开发
【iOS开发】UIScrollView 看不到内容、UIScro

【iOS开发】UIScrollView 看不到内容、UIScro

作者: KyXu | 来源:发表于2015-08-23 15:12 被阅读2259次

    初学者第一次使用 UIScrollView 的时候,很可能会遇到 UIScrollView 滑动不了,或者明明添加了内容,却看不到的问题。
    这里展示最简洁、最常态化的一种在 UIScrollView 中添加可以滑动的 UIImageView 的案例。

    上下文关系:代码中的“tipView”是通过 Storyboard 拖线到代码中绑定的 IBOutlet,已经在 self.view 里面了。

    设置 UIScrollView

    这里把 imageView 的 contentMode 设置为 AspectFill 来保证 image 可以填满 imageView ,并且长宽比不改变。
    容易犯的错误是通过 frame 来初始化 imageView,这是不必要也是不应该的。应该设定好你的图片资源的大小,然后直接用图片资源的frame 去设定 imageView 的 frame,当然这一步也是自动的。
    接下来要确定 UIScrollView 的 contentSize,即它的内容、可滑动范围。这也直接套用的图片资源的 frame。

    注意点1:必须保证 UIScrollView 的 contentSize 比它本身的 size要大,否则不可能滑动。

    注意点2:现在 imageView 是 UIScrollView 的 subView,所以它的 frame 也是相对 UIScrollView 的,你想要让它和 UIScrollView 刚好一样高,就要把它的 frame 的 y 值设定为0,这也是为什么我推荐你不管这个 y 值,让它自动置为0。假如 UIScrollView 的 y 值为10,你再设定 imageView 的 y 值为10,那么相对于屏幕来说,imageView 的 y 值是20。当它的 y 值大到一定程度,超出了 UIScrollView,你自然就看不到内容了。

    更新:
    如果你的 UIScrollView 老是在你不希望它滚动的方向的滚动,而且里面的 imageView 还有可能错位的话,在 viewDidLoad 方法中加入这句:

    self.automaticallyAdjustsScrollViewInsets = false

    相关文章

      网友评论

        本文标题:【iOS开发】UIScrollView 看不到内容、UIScro

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