-
201127 - TILTIL/2021 2020. 11. 28. 02:40
iOS
오늘도 여전히 UI를 구성하는 방법에 대해서 공부했다.
우측 상단에 목록을 누르면 아래에서 화면이 나오는 게 핵심!
Modal방식으로 하는 줄 알았지만 그러면 생각보다 많은 작업을 해야 한다.
View를 넣고 버튼을 누르면 두 개의 BottomConstraint의 Priority를 변경하면 된다.
안에 내용은 스택 뷰로 하는 게 좋은데...
스택 뷰의 스택 뷰의 스택 뷰 하다 보니 꼬여버렸다ㅠㅠㅠㅠ 그래서 일단 메인 기능을 구현했다.
그런데 dimming View를 안 깔고 넣었더니 뒤 화면을 그대로 컨트롤 가능했다. 그리고 뭔가 어색하다.
dimming view는 맨뒤에 깔아 두고 alpha를 0.0으로 해 놓은 뒤에
버튼을 누르면 앞으로 이동하고 alpha를 0.4로 변경하는 방식을 택했다. 그리고 dimming view에 보이지 않는 버튼을 깔아서 위의 화면을 누르면 내려가도록 구현했다.
중요한 부분만 코드를 올린다!
제약을 Outlet 연결
priority의 rawValue로 제약을 설정 - 그냥 priority에 접근하면 hide 될떄 제약 충돌이 일어난다.
더보기@IBOutlet weak var dimmingView: UIView! @IBOutlet weak var hideBottomConstraint: NSLayoutConstraint! @IBOutlet weak var showBottomConstraint: NSLayoutConstraint! @IBAction func toggleMenu(_ sender: Any) { view.insertSubview(dimmingView, aboveSubview: ItemCollectionView) hideBottomConstraint.priority = hideBottomConstraint.priority.rawValue < 999 ? UILayoutPriority(rawValue: 999) : UILayoutPriority(rawValue: 800) showBottomConstraint.priority = showBottomConstraint.priority.rawValue < 999 ? UILayoutPriority(rawValue: 999) : UILayoutPriority(rawValue: 800) UIView.animate(withDuration: 0.3) { self.view.layoutIfNeeded() self.dimmingView.alpha = self.dimmingView.alpha > 0.0 ? 0.0 : 0.4 } } @IBAction func hideMenu(_ sender: Any) { toggleMenu(sender) } override func viewDidLoad() { super.viewDidLoad() dimmingView.alpha = 0.0 } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() hideBottomConstraint.constant = -(view.frame.height) / 2 }
Swift
화면을 구현하는데 시간이 다 지나갔다. 시간 순삭....
복습을 못했다ㅠㅠ 내일 열심히 복습하자..
- map
- filter
- reduce
세 가지 함수에 대해서 공부했다. filter는 많이 써본 함수라서 쉬웠고 map도 어렵지 않았다.
728x90'TIL > 2021' 카테고리의 다른 글
201130 - TIL (0) 2020.12.01 201128 - TIL (0) 2020.11.29 201123 - TIL (0) 2020.11.24 201122 - TIL (0) 2020.11.23 201120 - TIL (0) 2020.11.21