首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS 圖片縮放手勢:UIPinchGestureRecognizer 配合 UIScrollView 實現

     編輯:程式設計綜合問答

問題

直接在 UIImageView 上添加 UIPinchGestureRecognizer 並修改 transform,縮放效果不理想且無法雙擊復位。

推薦方案:嵌入 UIScrollView

UIScrollView 內建縮放、雙擊縮放、邊界彈回等完整交互,只需實現代理方法返回縮放視圖:

// 佈局:ScrollView > ImageView
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var imageView: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()
    scrollView.delegate = self
    scrollView.minimumZoomScale = 1.0
    scrollView.maximumZoomScale = 3.0
    scrollView.contentSize = imageView.bounds.size
}

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
    return imageView
}

優勢

  • 系統級流暢縮放動畫。
  • 自動處理邊界、居中、雙擊智能縮放。
  • 支持旋轉、分頁等擴展功能。

若必須用手勢識別器

需手動管理 transform 累積狀態(sender.scale = 1 重置)、邊界限制、動畫復位,工作量大且易出錯,不推薦。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved