UIScrollView 在Autolayout下使用的一些问题

一、UIScrollView 双指放大手势,双击放大实现

  在设置UIScrollView的frame后、maxZoomScale 和 minZoomScale之后,UIScrollView会自然支持双指捏合的手势,自然支持放大缩小

  对于双击的手势,只要添加一个tap双击的识别器,然后在响应的时候,计算出来放大缩小之后的中心点(需要加上当前点击位置的向量),得到最终的rect就行了

 

二、Autolayout的问题

  如果使用了Autolayout,如果UISCrollView中的内容不需要放大,那么可以使用下面的思路

    用一个容器View,包含所有显示的内容,并且设置好显示内容的约束,在横向和竖向的方向上,约束都是满足的,可以计算出宽高

    然后设置好UISCrollView和容器之间的约束,也就是edges相等

    通过上面的设置,UISCrollView能够自然计算出来contentSize的大小

 

  如果内容需要实现zoom,那么上面的容器View和UISCrollView之间的关系一定不能使用Autolayout来限制,一定要在某个layoutsubviews中设置好 容器View 的frame等于 UISCrollView 的bounds

  这样的方式,能够避免放大缩小内容之后,Autolayout的约束带来的副作用,比如不能拖动,不能方法缩小等。

posted @ 2019-07-22 14:02  兜兜有糖的博客  阅读(460)  评论(0编辑  收藏  举报