처음에는 카테고리를 컬렉션뷰로 만들려고 했는데, 너무 복잡해지고 나의 수준을 뛰어넘는 거 같아서 그냥 더 간단해보이는 스택뷰로 카테고리를 만들기로 했다
import UIKit
class CategoryViewController: UIViewController {
// 카테고리 어레이
let menuCatecory = ["버거", "사이드", "음료"]
var categoryStackView: UIStackView!
// MARK: - viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
categoryStackView = UIStackView()
categoryStackView.axis = .horizontal
categoryStackView.distribution = .fillEqually
categoryStackView.backgroundColor = UIColor.init(cgColor: #colorLiteral(red: 1, green: 0.7779013515, blue: 0.4334530234, alpha: 0.8470588235))
// add subview
view.addSubview(categoryStackView)
// 카테고리의 button - 버거, 사이드, 음료; 현재는 테스트로 버거만
let button = UIButton()
button.setTitle(menuCatecory[0], for: .normal)
button.addTarget(self, action: #selector(categoryButtonTapped), for: .touchUpInside)
categoryStackView.addArrangedSubview(button)
categoryStackView.translatesAutoresizingMaskIntoConstraints = false
// add constraints
NSLayoutConstraint.activate([
categoryStackView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
// 나중에 상세 메뉴에 맞춰서 위치를 조절할 수도 있도록 constraint를 추가해야함
//categoryStackView.bottomAnchor.constraint(equalTo: <#T##NSLayoutAnchor<NSLayoutYAxisAnchor>#>)
categoryStackView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor),
categoryStackView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor),
//임시 constraint
categoryStackView.centerXAnchor.constraint(equalTo: view.centerXAnchor)
])
}
// MARK: - Functions
@objc func categoryButtonTapped(_ sender: UIButton) {
//나중에 이 버튼들이 눌리면 해당 카테고리의 메뉴를 보여줄 수 있도록 연결해야함
print(sender.titleLabel?.text)
}
}