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的约束带来的副作用,比如不能拖动,不能方法缩小等。