0
보기 컨트롤러의 다른보기 위에 여러보기가 있고 탭 막대를 시뮬레이션하려고합니다. 사용자는 메뉴의 아무 버튼이나 탭 할 수 있으며 어떤 버튼이 탭되었는지에 따라보기가 표시됩니다. 다른 모든보기가 숨겨집니다.iOS의 탭 막대 시뮬레이션
필자는보기를 올바르게 나타내지 않는 (때로는 나타나기도하고 그렇지 않은 경우) 다음 코드를 작성했습니다.
presentViewWithName(.home) // this will present the view at the very bottom of the hierarchy
enum Views {
case home
case sketchpad
case help
case settings
}
func presentViewWithName(name: Views) {
self.turnAlphaOnToEveryMenuButton()
switch name {
case .home:
self.hideAllViews()
self.menuView.buttonHome.dimmerAlpha()
case .sketchpad:
self.sketchpadView.animateToggleAlpha()
self.menuView.buttonSketchpad.dimmerAlpha()
case .help:
self.helpView.animateToggleAlpha()
self.menuView.buttonHelp.dimmerAlpha()
case .settings:
self.settingsView.animateToggleAlpha()
self.menuView.buttonSettings.dimmerAlpha()
}
}
func turnAlphaOnToEveryMenuButton() {
self.menuView.buttonHome.alpha = 1
self.menuView.buttonSketchpad.alpha = 1
self.menuView.buttonHelp.alpha = 1
self.menuView.buttonSettings.alpha = 1
}
func hideAllViews() {
self.settingsView.alpha = 0
self.sketchpadView.alpha = 0
self.helpView.alpha = 0
}
extension UIView {
func animateToggleAlpha() {
UIView.animateWithDuration(0.25) {
self.alpha = self.alpha == 1 ? 0 : 1
}
}
func dimmerAlpha() {
UIView.animateWithDuration(0.25) {
self.alpha = self.alpha == 1 ? 0.4 : 1
}
}
}
기본적으로보기의 알파를 변경하고 있습니다. 가정의 풍경을 보여주고 싶다고합시다. 그것이 계층 구조의 맨 아래에있는 견해입니다. 나는 단지 모든 견해를 감추고있다. 계층 구조 맨 위의 설정보기에보기를 표시하려고한다고 가정 해보십시오. 모든보기를 숨긴 다음 설정보기를 표시합니다.
이 문제를 어떻게 해결할 수 있습니까?
멋진 답변, 좋은 답변 – Fattie