본문 바로가기
모바일/IOS

키보드관련

by 죠부니 2018. 1. 11.
반응형

{

//키보드 노티피케이션

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)

}

반응형