1. 程式人生 > >Swift實現全屏瀏覽圖片

Swift實現全屏瀏覽圖片

                                                        

      使用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