{
//키보드 노티피케이션
NotificationCenter.default.addObserver(self, selector : #selector(keyboardWillShow(noti:)),name:NSNotification.Name.UIKeyboardWillShow,object:nil)
NotificationCenter.default.addObserver(self, selector : #selector(keyboardWillShow(noti:)),name:NSNotification.Name.UIKeyboardWillHide,object:nil)
}
//키보드가 올라올때
func keyboardWillShow(noti:NSNotification){
//키보드 높이
let notiInfo = noti.userInfo! as NSDictionary
let keyboardFrame = notiInfo[UIKeyboardFrameEndUserInfoKey] as! CGRect
let height = keyboardFrame.size.height
//키보드와 같이 보일부분의 마진을 추가
inputVIewBottomMargin.constant = height
//애니메이션 추가
//키보드의 움직이는 시간을 가져온다
// 그 시간만큼 텍스트 인풋뷰를 애니메이션 형태로 올라오게 만들면 자연스럽게 보일것
let animationDuration = notiInfo[UIKeyboardAnimationDurationUserInfoKey] as! TimeInterval
UIView.animate(withDuration : animationDuration ){
self.view.layoutIfNeeded()
}
}
//키보드가 내려갈때
func keyboardWillShow(noti:NSNotification){
let notiInfo = noti.userInfo! as NSDictionary
inputVIewBottomMargin.constant = 0
let animationDuration = notiInfo[UIKeyboardAnimationDurationUserInfoKey] as! TimeInterval
UIView.animate(withDuration : animationDuration ){
self.view.layoutIfNeeded()
}
}
//다른방법이 있을듯
//테이블뷰를 선택했을때 키보드 내려오게
func tableView(_ tableView : UITableVIew, didSelectRowAt indexPath : IndexPath){
self.view.endEditing(true)
}
'모바일 > IOS' 카테고리의 다른 글
The resource could not be loaded because the App Transport Security policy requires the use of a secure connection (0) | 2018.01.11 |
---|---|
HTTP 통신 , JSON 처리 (0) | 2018.01.11 |
Carousel 관련 (0) | 2018.01.10 |
그라데이션 CAGradientLayer (0) | 2018.01.10 |
초기 개발을 위해 배운것들 (0) | 2018.01.08 |