Swift實現全屏瀏覽圖片
阿新 • • 發佈:2019-02-18
使用UICollectionView實現分屏顯示和ScrollView實現縮放效果;
小圓點是UIPageControll控制元件, 支援配置選中色和未選中顏色;
UIScrollView有個zoomScale引數, 通過修改該引數可以縮放ScrollView, 從而實現圖片縮放效果。
scrollView?.delegate = self scrollView?.minimumZoomScale = 1.0 //縮小倍數 scrollView?.maximumZoomScale = 5.0 //放大倍數
自定義UICollectionView一般是指重寫佈局類, 例如預覽圖片時一屏值顯示一張圖片,並且左右滑動切換下一張圖片,就是通過配置佈局屬性實現的。
let layout = UICollectionViewFlowLayout() layout.minimumLineSpacing = 0 layout.minimumInteritemSpacing = 0 layout.itemSize = view.bounds.size //每條記錄的大小 layout.scrollDirection = .horizontal
collectionView?.isPagingEnabled = true //分屏
判斷單擊和雙擊都是通過手勢判斷的, 重點是如何區分單擊還是雙擊, 需要呼叫require函式。
let singleClick = UITapGestureRecognizer(target: self, action: #selector(singleClick(_:))) singleClick.numberOfTapsRequired = 1 //點選次數 singleClick.numberOfTouchesRequired = 1 //手指個數 let doubleClick = UITapGestureRecognizer(target: self, action: #selector(doubleClick(_:))) doubleClick.numberOfTapsRequired = 2 doubleClick.numberOfTouchesRequired = 1 singleClick.require(toFail: doubleClick) //雙擊監聽失效時才響應單擊事件
在編寫extension時可能會需要得到UIView所在的UIViewController例項, 這時可以通過如下方法實現。
//查詢所在的UIViewController
func getViewController() -> UIViewController? {
for view in sequence(first: self.superview, next: {$0?.superview}) {
if let responder = view?.next{
if responder.isKind(of: UIViewController.self) {
return responder as? UIViewController
}
}
}
return nil
}
程式碼: http://download.csdn.net/detail/brycegao321/9798023