탭 교환을 통한 화면 전환 메뉴 UI

14531 단어 menuSwiftUIViewiOS

스마트뉴스와 지노시 등 뉴스 애플리케이션에서 많이 사용되는데, 인스타그램, 트위터, 스포티파이 등 많은 애플리케이션에서 사용하는 UI를 간단하게 구현할 수 있는 프로그램 라이브러리가 최근 공개됐다.
yysskk/SwipeMenuViewController

데모


SwipeMenuview는 두 가지 스타일에 대응하여 다음과 같은 프레젠테이션의 외관을 실현할 수 있다.또한 UI의 사용자 정의 및 태그 표시줄 동작은 options를 지정하여 대응할 수 있습니다.
Segmented style
Flexible style


가져오기 방법


Cocopods 및 Carrthage가 지원됩니다.
Cocoapods를 사용할 때는 Podfile에 다음과 같은 내용pod install을 보충하십시오.
pod 'SwipeMenuViewController'
Carthage를 사용할 때는 Cartfile에 다음carthage update을 추가하고 Carthage를 설정합니다.
github "yysskk/SwipeMenuViewController"

사용법


SwipeMenuViewControllerSwipeMenuViewSwipeMenuViewController를 사용할 수 있습니다.

SwipeMenuView


1) 사용법은 여러가지 있지만 스토리보드에 설치된 UIView는 상속SwipeMenuView하고 ViewController.swift와 연관된다.

2) swipe MenuViewdidSet에 옵션의 사용자 정의 설정을 적습니다.
ViewController.swift
@IBOutlet weak var swipeMenuView: SwipeMenuView! {
    didSet {
        swipeMenuView.delegate = self
        swipeMenuView.dataSource = self
        var options: SwipeMenuViewOptions = .init()
        // options customize
        swipeMenuView.reload(options: options)
    }
}
3) ViewControllerSwipeMenuViewDataSource를 설정합니다.
ViewController.swift
extension ViewController: SwipeMenuViewDataSource
    func numberOfPages(in swipeMenuView: SwipeMenuView) -> Int {
        return datas.count
    }

    func swipeMenuView(_ swipeMenuView: SwipeMenuView, titleForPageAt index: Int) -> String {
        return datas[index]
    }

    func swipeMenuView(_ swipeMenuView: SwipeMenuView, viewControllerForPageAt index: Int) -> UIViewController {
        let vc = ViewController() 
        return vc
    }
}
4) ViewController에서 적절한 방법SwipeMenuViewDelegate을 설정합니다.
ViewController.swift
extension ViewController: SwipeMenuViewDelegate {
    func swipeMenuView(_ swipeMenuView: SwipeMenuView, viewWillSetupAt currentIndex: Int) {
        // Codes
    }

    func swipeMenuView(_ swipeMenuView: SwipeMenuView, viewDidSetupAt currentIndex: Int) {
        // Codes
    }

    func swipeMenuView(_ swipeMenuView: SwipeMenuView, willChangeIndexFrom fromIndex: Int, to toIndex: Int) {
        // Codes
    }

    func swipeMenuView(_ swipeMenuView: SwipeMenuView, didChangeIndexFrom fromIndex: Int, to toIndex: Int) {
        // Codes
    }
}

SwipeMenuViewController


1) SwipeMenuViewController를 사용할 때 ViewController 파일이 SwipeMenuViewController를 계승하도록 설정할 수 있습니다.
CustomViewController.swift
class CustomViewController: SwipeMenuViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        var options: SwipeMenuViewOptions = .init()
        // options customize
       swipeMenuView.reloadData(options: options)

    }
}   
2) 적당히 SwipeMenuViewDataSource,SwipeMenuViewDelegate를 다시 쓰십시오.
CustomViewController.swift
extension CustomViewController {
    // MARK: - SwipeMenuViewDelegate
    override func swipeMenuView(_ swipeMenuView: SwipeMenuView, viewWillSetupAt currentIndex: Int) {
        // Codes
    }

    override func swipeMenuView(_ swipeMenuView: SwipeMenuView, viewDidSetupAt currentIndex: Int) {
        // Codes
    }

    override func swipeMenuView(_ swipeMenuView: SwipeMenuView, willChangeIndexFrom fromIndex: Int, to toIndex: Int) {
        // Codes
    }

    override func swipeMenuView(_ swipeMenuView: SwipeMenuView, didChangeIndexFrom fromIndex: Int, to toIndex: Int) {
        // Codes
    }

    // MARK - SwipeMenuViewDataSource
    open override func numberOfPages(in swipeMenuView: SwipeMenuView) -> Int {
        return array.count
    }

    override func swipeMenuView(_ swipeMenuView: SwipeMenuView, titleForPageAt index: Int) -> String {
        return array[index]
    }

    override func swipeMenuView(_ swipeMenuView: SwipeMenuView, viewControllerForPageAt index: Int) -> UIViewController {
        let vc = ContentViewController()
        return vc
    }
}

최후


SwipeMenuViewController의 사용 방법은 다음과 같습니다.만약 이해하지 못하는 부분이 있다면 댓글이나 트위터를 남겨주세요!
앞으로 OSS 활동도 잘해야겠다는 마음으로 프로그램 라이브러리화
더 좋은 게 있다면 홍보를 기다리고 있을게요

좋은 웹페이지 즐겨찾기