152

GitHub - Jiar/SegementSlide: Multi-tier UIScrollView nested scrolling solution....

 5 years ago
source link: https://github.com/Jiar/SegementSlide
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

SegementSlide.png?raw=true

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c616e67756167652d73776966742d6f72616e67652e737667 68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f4a6961722f536567656d656e74536c6964652e7376673f6272616e63683d6d6173746572 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43617274686167652d636f6d70617469626c652d3442433531442e7376673f7374796c653d666c6174 68747470733a2f2f696d672e736869656c64732e696f2f636f636f61706f64732f762f536567656d656e74536c6964652e7376673f7374796c653d666c6174 68747470733a2f2f696d672e736869656c64732e696f2f636f636f61706f64732f702f536567656d656e74536c6964652e7376673f7374796c653d666c6174 68747470733a2f2f696d672e736869656c64732e696f2f636f636f61706f64732f6c2f536567656d656e74536c6964652e7376673f7374796c653d666c6174 codebeat badge 68747470733a2f2f636f6465636f762e696f2f67682f4a6961722f536567656d656e74536c6964652f6272616e63682f6d61737465722f67726170682f62616467652e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f747769747465722d404a696172596f6f2d626c75652e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f776569626f2d404a6961722d7265642e737667

Multi-tier UIScrollView nested scrolling solution.

Snapshots

childBouncesType.gif?raw=true transparent1.gif?raw=true inNavigationBar.gif?raw=true
parentBouncesType.gif?raw=true transparent2.gif?raw=true parentBouncesType_segementSwitcherType.gif?raw=true

Requirements

  • iOS 9.0+
  • Xcode 10.0+
  • Swift 4.2+

Installation

CocoaPods

CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

$ gem install cocoapods

CocoaPods 1.1.0+ is required to build SegementSlide.

To integrate SegementSlide into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!

target '<Your Target Name>' do
    pod 'SegementSlide', '2.0-beta-13'
end

Then, run the following command:

$ pod install

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate SegementSlide into your Xcode project using Carthage

  1. specify it in your Cartfile:
github "Jiar/SegementSlide" "2.0-beta-13"

Run carthage update to build the framework.

  1. Copy Carthage Frameworks:
  • open the Build Phases tab of the project Settings
  • add New Run Script Phase
  • add /usr/local/bin/carthage copy-frameworks to the input field
  • add $(SRCROOT)/Carthage/Build/iOS/SegementSlide.framework to Input Files Copy Carthage Frameworks
  1. Embedded Binaries:
  • open the general tab of the project Settings
  • add SegementSlide.framework in $(SRCROOT)/Carthage/Build/iOS to the Embedded Binaries Embed Binaries

Manually

If you prefer not to use either of the aforementioned dependency managers, you can integrate SegementSlide into your project manually.


Usage

Quick Start

import SegementSlide

class HomeViewController: SegementSlideViewController {

    ......

    override var headerHeight: CGFloat? {
        return view.bounds.height/4
    }
    
    override var headerView: UIView? {
        return UIView()
    }

    override var titlesInSwitcher: [String] {
        return ["Swift", "Ruby", "Kotlin"]
    }

    override func segementSlideContentViewController(at index: Int) -> SegementSlideContentScrollViewDelegate? {
        return ContentViewController()
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        canCacheScrollState = true
        reloadData()
        scrollToSlide(at: 0, animated: false)
    }

}
import SegementSlide

class ContentViewController: UITableViewController, SegementSlideContentScrollViewDelegate {

    ......

    @objc var scrollView: UIScrollView {
        return tableView
    }

}

Author

License

SegementSlide is released under the Apache-2.0 license. See LICENSE for details.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK