一、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的約束帶來的副作用,比如不能拖動,不能方法縮小等。