码迷,mamicode.com
首页 > 编程语言 > 详细

swift开发笔记11

时间:2017-08-16 18:22:12      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:let   dex   update   any   app   war   scroll   manage   toc   

// 注意判断条件,  

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)

    }

 

swift开发笔记11

标签:let   dex   update   any   app   war   scroll   manage   toc   

原文地址:http://www.cnblogs.com/dengchaojie/p/7374635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!