zoukankan      html  css  js  c++  java
  • swift开发笔记11

    // 注意判断条件,  

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

     

        if let cell = sender as? UICollectionViewCell,

          let indexPath = collectionView?.indexPath(for: cell),

          let managePageViewController = segue.destination as? ManagePageViewController {

          managePageViewController.photos = photos

          managePageViewController.currentIndex = indexPath.row

        }

      }

    }

     

    // UIPageViewController 用法

    if let viewController = viewPhotoCommentController(index: currentIndex ?? 0) {

          let viewControllers = [viewController]

          setViewControllers (

            viewControllers,

            direction: .forward,

            animated: false,

            completion: nil

          )

        }

     

    // 来自storyboard的VC,初始化方法

      fileprivate func viewPhotoCommentController(index: Int) -> PhotoCommentViewController? {

        if let storyboard = storyboard,

          let page = storyboard.instantiateViewController(withIdentifier: "PhotoCommentViewController")

            as? PhotoCommentViewController {

          page.photoName = photos[index]

          page.photoIndex = index

          return page

        }

        

        return nil

      }

     

    // UIPageViewControllerDataSource

    extension ManagePageViewController: UIPageViewControllerDataSource {

      func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {

        

        if let viewController = viewController as? PhotoCommentViewController {

          guard let index = viewController.photoIndex, index != 0 else {

            return nil

          }

          return viewPhotoCommentController(index: index - 1)

        }

        return nil

      }

      

      func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {

        

        if let viewController = viewController as? PhotoCommentViewController {

          guard let index = viewController.photoIndex, index != photos.count - 1 else {

            return nil

          }

          return viewPhotoCommentController(index: index + 1)

        }

        return nil

      }

      

      /// MARK: UIPageControl

      func presentationCount(for pageViewController: UIPageViewController) -> Int {

        return photos.count

      }

      

      func presentationIndex(for pageViewController: UIPageViewController) -> Int {

        return currentIndex ?? 0

      }

    }

    // 初始化Selector

    fileprivate extension Selector {

      static let keyboardWillShowHandler = #selector(PhotoCommentViewController.keyboardWillShow(notification:))

      static let keyboardWillHideHandler = #selector(PhotoCommentViewController.keyboardWillHide(notification:))

      static let generalTap = #selector(PhotoCommentViewController.dismissKeyboard)

      static let zoomTap = #selector(PhotoCommentViewController.openZoomingController(sender:))

    }

    // UIScrollViewDelegate

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

            return myImageView

        }

        func scrollViewDidZoom(_ scrollView: UIScrollView) {

            updateConstraints(forSize: view.bounds.size)

        }

     

  • 相关阅读:
    SQL数据库一直显示正在还原
    jQuery获取display为none的隐藏元素的宽度和高度的解决方案
    火狐打开新标签页面不出现九宫格的设置
    【转】在C#中?,?:和??
    【转】JS字符(字母)与ASCII码转换方法
    如何为 .NET Core 安装本地化的 IntelliSense 文件
    compass typography 排版 常用排版方法[Sass和compass学习笔记]
    单元测试 逃不开的Done 与约定
    SASS+COMPASS 自适应 学习笔记
    compass tables 表格 表格常见样式[Sass和compass学习笔记]
  • 原文地址:https://www.cnblogs.com/dengchaojie/p/7374635.html
Copyright © 2011-2022 走看看