만약 버튼이 하단에 있다면, 키보드가 화면에서 올라올때 버튼도 같이 올라와야 할 것이다. 그동안은 보통 Notification
을 사용했다. 그렇지만 iOS 15부터 UIKeyboardLayoutGuide
가 나오면서 편하게 설정을 할 수 있게 되었다.
loginButton이 가장 하단에 있는 버튼이라고 생각을 해보자. 그렇다면 버튼의 bottomAnchor를 keyboardLayoutGuide의 topAnchor에 연관시키면 된다.
loginButton.bottomAnchor.constraint(equalTo: view.keyboardLayoutGuide.topAnchor, constant: 0),
loginButton.leadingAnchor.constraint(equalTo: safeArea.leadingAnchor, constant: 0),
loginButton.trailingAnchor.constraint(equalTo: safeArea.trailingAnchor, constant: 0),
loginButton.heightAnchor.constraint(equalToConstant: 50)
그런데 아이폰 14같이 safelayout이 정해저 있으면 가장 하단에는 버튼이 띄워지게 된다. 이럴때는 버튼 클래스를 새로 만들어서 safearea의 높이에 맞게 window를 추가한 다음에 색상을 같이 적용시키면 된다.
private func cofigureAutoLayout() {
guard let window = UIApplication.shared.windows.first else { return }
let safeAreaHeigt = window.safeAreaInsets.bottom
print(safeAreaHeigt)
NSLayoutConstraint.activate([
bottomView.topAnchor.constraint(equalTo: topAnchor),
bottomView.leadingAnchor.constraint(equalTo: leadingAnchor),
bottomView.trailingAnchor.constraint(equalTo: trailingAnchor),
bottomView.heightAnchor.constraint(equalTo: heightAnchor, constant: safeAreaHeigt),
])
}