iOS9에서 iPad 키보드의 높이를 계산하는 방법이 미묘하게 변경되었습니다.

2657 단어 iOSSwiftiPad
  • Xcode8.0 + Swift3.0

  • 흔한 키보드의 높이 취득 방법(불완전)



    불완전한 예
        @objc private func keyboardDidShow(_ sender: NSNotification) {
            if let dic: Dictionary = sender.userInfo {
                if let value = dic[UIKeyboardFrameEndUserInfoKey] as? NSValue {
                    print("height=\(value.cgRectValue.height)")
                }
            }
        }
    

    iOS8 근처까지는 이런 느낌으로 CGRect 위의 것이라면 잘못된 높이가되어 버립니다.



    키보드의 직사각형과 height 값
    rect=(0.0, 713.0, 1024.0, 398.0)
    height=398.0
    

    어떻게 봐도 높이 398포인트에는 보이지 않습니다.
    어쩌면 보통 크기의 키보드가 화면 밖으로 튀어나오고 있겠지요.

    외부 키보드는 시뮬레이터의 경우 height로 전환됩니다.

    해결책



    화면의 높이에서 CGRect.minY를 뺀 값을 사용하는 것이 좋을 것 같습니다.

    수정 예
    height = UIScreen.main.bounds.height - value.cgRectValue.minY
    

    끝에



    좋지 않은 경우가 있으면 알려주십시오.
    최근에는 iPad Pro의 Smart Keyboard의 등장에 의해, 이 근처의 테스트도 필수가 되네요. . .

    좋은 웹페이지 즐겨찾기