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)

        }

     

  • 相关阅读:
    04747_Java语言程序设计(一)_第7章_图形、图像与多媒体
    04747_Java语言程序设计(一)_第6章_图形界面设计(二)
    04747_Java语言程序设计(一)_第5章_图形界面设计(一)
    04747_Java语言程序设计(一)_第4章_数组和字符串
    04747_Java语言程序设计(一)_第3章_面向对象编程基础
    04747_Java语言程序设计(一)_第2章_运算和语句
    04747_Java语言程序设计(一)_第1章_Java语言基础
    记事本写hello world_Java
    Java安装根目录
    input标签不能设置height
  • 原文地址:https://www.cnblogs.com/dengchaojie/p/7374635.html
Copyright © 2011-2022 走看看