[swift] Swift PKRevealController와의 코코아 라이브러리 활용

목차

Swift PKRevealController란?

Swift PKRevealController는 iOS 앱에서 사이드 메뉴를 구현하기 위해 사용되는 라이브러리입니다. 이 라이브러리는 객체지향적인 방식으로 구현되어 있어 앱의 구조를 잘 유지하면서 편리하게 사이드 메뉴를 추가할 수 있습니다.

코코아 라이브러리를 활용한 PKRevealController 구현

아래는 코코아 라이브러리를 활용하여 PKRevealController를 구현하는 예시 코드입니다.

import UIKit
import PKRevealController

class MainViewController: PKRevealController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let menuViewController = MenuViewController()
        let contentViewController = ContentViewController()
        
        self.setFrontViewController(contentViewController, animated: false)
        self.setLeftViewController(menuViewController, animated: false)
        self.setFrontViewShadow(color: .black, offset: CGSize(width: 0, height: 2), opacity: 0.5, radius: 5)
        self.setMinimumWidth(200, maximumWidth: 300, for: .left)
        
        self.view.backgroundColor = .white
    }
}

class MenuViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.view.backgroundColor = .lightGray
    }
}

class ContentViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.view.backgroundColor = .white
        
        let openMenuButton = UIButton(type: .system)
        openMenuButton.setTitle("Open Menu", for: .normal)
        openMenuButton.addTarget(self, action: #selector(openMenu), for: .touchUpInside)
        openMenuButton.frame = CGRect(x: 100, y: 200, width: 200, height: 50)
        self.view.addSubview(openMenuButton)
    }
    
    @objc func openMenu() {
        if let revealController = self.revealController() {
            revealController.show(.left)
        }
    }
}

위 코드는 MainViewController 클래스에서 PKRevealController를 상속받아 사용하는 예시입니다. MainViewController에서는 ContentViewController와 MenuViewController를 각각 FrontViewController와 LeftViewController로 설정하고, 사이드 메뉴의 너비와 그림자 설정 등을 추가로 설정합니다.

ContentViewController에서는 “Open Menu”라는 버튼을 생성하고, 버튼을 누를 때 사이드 메뉴를 보여주도록 구현되어 있습니다. 이를 위해 openMenu 메서드에서 self.revealController()?.show(.left)를 호출하여 왼쪽 사이드 메뉴를 보여주고 있습니다.

결론

Swift PKRevealController는 iOS 앱에서 사이드 메뉴를 쉽게 구현하기 위해 사용할 수 있는 코코아 라이브러리입니다. 위 예시 코드를 참고하여 사용해보시기 바랍니다. 더 많은 기능과 설정은 PKRevealController의 공식 문서를 참고하시기 바랍니다.