YHInfiniteScrollView 0.1.2

YHInfiniteScrollView 0.1.2

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2018年7月
SPM支持 SPM

Yonghwi Nam维护。



  • Yonghwi

YHInfiniteScrollView

CI Status Version License Platform

预览

需求

  • Swift 3+
  • iOS 9+

安装

YHInfiniteScrollView 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

pod 'YHInfiniteScrollView'

用法

使用布局约束进行配置

import UIKit
import YHInfiniteScrollView


override func viewDidLoad() {
super.viewDidLoad()

// Create content view controllers or views
let firstViewContorller = self.storyboard?.instantiateViewController(withIdentifier: "FirstViewController")
let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController")
let thirdViewController = self.storyboard?.instantiateViewController(withIdentifier: "ThirdViewController")
let fourthViewController = self.storyboard?.instantiateViewController(withIdentifier: "FourthViewController")
let fifthViewController = self.storyboard?.instantiateViewController(withIdentifier: "FifthViewController")

self.addChildViewController(firstViewContorller!)
self.addChildViewController(secondViewController!)
self.addChildViewController(thirdViewController!)
self.addChildViewController(fourthViewController!)
self.addChildViewController(fifthViewController!)

// Initialize infinite scroll view with contents
let infiniteScrollView = YHInfiniteScrollView.init(frame: CGRect.zero,
contentObjects: [firstViewContorller!, secondViewController!, thirdViewController!, fourthViewController!, fifthViewController! ])
infiniteScrollView.translatesAutoresizingMaskIntoConstraints = false
infiniteScrollView.delegate = self

// Add infinite scroll view to container view (assume that existing container view)
self.mainContainer.addSubview(infiniteScrollView)

// Add layuout contraints
let alcTop = NSLayoutConstraint.init(item: infiniteScrollView, attribute: .top, relatedBy: .equal, toItem: self.mainContainer, attribute: .top, multiplier: 1.0, constant: 0.0)
let alcLeading = NSLayoutConstraint.init(item: infiniteScrollView, attribute: .leading, relatedBy: .equal, toItem: self.mainContainer, attribute: .leading, multiplier: 1.0, constant: 0.0)
let alcBottom = NSLayoutConstraint.init(item: infiniteScrollView, attribute: .bottom, relatedBy: .equal, toItem: self.mainContainer, attribute: .bottom, multiplier: 1.0, constant: 0.0)
let alcTrailing = NSLayoutConstraint.init(item: infiniteScrollView, attribute: .trailing, relatedBy: .equal, toItem: self.mainContainer, attribute: .trailing, multiplier: 1.0, constant: 0.0)

self.mainContainer.addConstraints([alcTop, alcLeading, alcBottom, alcTrailing])
}

使用框架进行配置

override func viewDidLoad() {
super.viewDidLoad()

let firstViewContorller = self.storyboard?.instantiateViewController(withIdentifier: "FirstViewController")
let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController")
let thirdViewController = self.storyboard?.instantiateViewController(withIdentifier: "ThirdViewController")
let fourthViewController = self.storyboard?.instantiateViewController(withIdentifier: "FourthViewController")
let fifthViewController = self.storyboard?.instantiateViewController(withIdentifier: "FifthViewController")

self.addChildViewController(firstViewContorller!)
self.addChildViewController(secondViewController!)
self.addChildViewController(thirdViewController!)
self.addChildViewController(fourthViewController!)
self.addChildViewController(fifthViewController!)

let contentObjects = [firstViewContorller!, secondViewController!, thirdViewController!, fourthViewController!, fifthViewController!]

// Frame for infinite scroll view
let infiniteRect = CGRect.init(origin: .zero, size: CGSize.init(width: SCREEN_WIDTH, height: SCREEN_HEIHGT - STATUSBAR_HEIGHT))

// Initialize infinite scroll view with contents
let infiniteScrollView = YHInfiniteScrollView.init(frame: infiniteRect, contentObjects: contentObjects)
infiniteScrollView.delegate = self

// Add infinite scroll view to container view (assume that existing container view)
self.mainContainer.addSubview(infiniteScrollView)
}

公共方法

func setContentOffset(atIndex: Int)

委托

func didScroll(atContentOffsetX: CGFloat)

func willScrollToNextView(atIndex: Int)
func willScrollToNextView(atIndex: Int, contentObject: Any)

func didScrollToNextView(atIndex: Int)
func didScrollToNextView(atIndex: Int, contentObject: Any)

func willScrollToPreviousView(atIndex: Int)
func willScrollToPreviousView(atIndex: Int, contentObject: Any)

func didScrollToPreviousView(atIndex: Int)
func didScrollToPreviousView(atIndex: Int, contentObject: Any)

作者

Yonghwi ([email protected])

许可协议

YHInfiniteScrollView 在 MIT 许可协议下可用。更多信息请参阅 LICENSE 文件。