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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章