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

iOS 長圖片處理方案:縮略圖裁切與全圖滾動縮放

     編輯:程式設計綜合問答

業界常見做法(微博、微信、QQ)

  1. 伺服器端預處理:上傳時產生兩張圖——
    ① 縮略圖(含裁切版)用於列表/首頁顯示。
    ② 原圖/高清圖用於詳情頁。
  2. App 端顯示策略:
    • 列表/首頁:使用 UIImageView,設定 contentMode = .scaleAspectFill 並 clipsToBounds = true,超出區域自動裁切;右下角疊加「長圖」標識。
    • 詳情頁:使用 UIScrollView + UIImageView,支援上下滑動、雙指縮放。網上有成熟 Demo(如 MWPhotoBrowser、YYImage)。

關鍵程式碼片段

// 列表頁縮略圖裁切
imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true

// 詳情頁可縮放滾動
let scrollView = UIScrollView(frame: view.bounds)
scrollView.delegate = self
scrollView.minimumZoomScale = 1.0
scrollView.maximumZoomScale = 3.0
let imageView = UIImageView(image: fullImage)
scrollView.addSubview(imageView)
scrollView.contentSize = imageView.bounds.size

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

進階優化

  • 大圖分塊載入(CATiledLayer / YYImage)避免記憶體暴增。
  • 列表頁使用低解析度佔位圖,滾動停止後再換高清圖。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved