아이폰의 화면 키보드 높이는 얼마입니까?
세로 높이와 가로 높이를 점으로 측정한 값입니다.
iOS 7.1에서 키보드 프레임을 결정하기 위해 다음과 같은 방법을 사용했습니다.
내 뷰 컨트롤러의 init 메서드에서, 나는 등록했습니다.UIKeyboardDidShowNotification:
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(keyboardOnScreen:) name:UIKeyboardDidShowNotification object:nil];
그리고 다음 코드를 사용했습니다.keyboardOnScreen:키보드 프레임에 액세스할 수 있습니다.이 코드는 다음을 가져옵니다.userInfo알림에서 사전을 찾은 다음 액세스합니다.NSValue와 관련된.UIKeyboardFrameEndUserInfoKey그런 다음 CGRect에 액세스하여 뷰 컨트롤러의 뷰 좌표로 변환할 수 있습니다.여기서 해당 프레임을 기반으로 필요한 모든 계산을 수행할 수 있습니다.
-(void)keyboardOnScreen:(NSNotification *)notification
{
NSDictionary *info = notification.userInfo;
NSValue *value = info[UIKeyboardFrameEndUserInfoKey];
CGRect rawFrame = [value CGRectValue];
CGRect keyboardFrame = [self.view convertRect:rawFrame fromView:nil];
NSLog(@"keyboardFrame: %@", NSStringFromCGRect(keyboardFrame));
}
스위프트
Swift와 동등한 기능을 구현:
NotificationCenter.default.addObserver(self, selector: #selector(keyboardDidShow), name: UIResponder.keyboardDidShowNotification, object: nil)
@objc
func keyboardDidShow(notification: Notification) {
guard let info = notification.userInfo else { return }
guard let frameInfo = info[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue else { return }
let keyboardFrame = frameInfo.cgRectValue
print("keyboardFrame: \(keyboardFrame)")
}
iOS 8에서는 화면 키보드의 크기가 달라질 수 있습니다.화면 키보드가 항상 표시되거나(특정 높이로) 보이지 않는다고 가정하지 마십시오.
이제 iOS 8을 사용하면 텍스트 예측 영역을 켜고 끌 수 있습니다.그리고 그들이 이것을 할 때, 그것은 앱의 시동을 걸 것입니다.keyboardWillShow사건이 또 발생했습니다.
이것은 많은 레거시 코드 샘플을 파괴할 것이고, 그것은 다음을 작성할 것을 권고했습니다.keyboardWillShow이벤트 - 화면 키보드의 현재 높이만 측정하고 이 (절대)만큼 페이지에서 컨트롤을 위 또는 아래로 이동합니다.

다시 말해, 샘플 코드가 보이면, 그것은 단지 당신에게 추가하라고 지시합니다.keyboardWillShow이벤트에서 키보드 높이를 측정한 다음 이 양만큼 컨트롤의 높이 크기를 조정하면 더 이상 작동하지 않습니다.
위의 예에서는 아래 사이트의 샘플 코드를 사용하여 수직 제약 조건을 애니메이션화했습니다.constant가치.
앱에서 제약 조건을 추가했습니다.UITextView화면 하단으로 설정합니다.화면이 처음 나타났을 때 이 초기 수직 거리를 저장했습니다.
그럼 언제든지.keyboardWillShow이벤트가 시작되면 (새) 키보드 높이를 이 원래 제약 조건 값에 추가합니다(그래서 제약 조건은 컨트롤의 높이 크기를 조정합니다).

네, 못생겼어요
그리고 Xcode 6의 끔찍하게 고통스러운 자동 레이아웃이 화면 하단이나 화면 키보드 상단에 컨트롤 하단을 부착할 수 없다는 것에 약간 화가 나거나 놀랐습니다.
뭔가 놓친 게 있는 것 같아요.
제 정신이 아닌 이상.
키보드 높이는 세로 모드의 경우 216개, 가로 모드의 경우 162개입니다.
버전 참고: iOS 9 및 10에서는 사용자 지정 키보드 크기를 지원하기 때문에 더 이상 이 값을 사용할 수 없습니다.
이는 모델과 QuickType 막대에 따라 달라집니다.

http://www.idev101.com/code/User_Interface/sizes.html
키보드 높이는 모델, QuickType 막대, 사용자 설정에 따라 다릅니다.최상의 접근 방식은 다항식으로 계산됩니다.
스위프트 3.0
var heightKeyboard : CGFloat?
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardShown(notification:)), name: NSNotification.Name.UIKeyboardDidShow, object: nil)
}
func keyboardShown(notification: NSNotification) {
if let infoKey = notification.userInfo?[UIKeyboardFrameEndUserInfoKey],
let rawFrame = (infoKey as AnyObject).cgRectValue {
let keyboardFrame = view.convert(rawFrame, from: nil)
self.heightKeyboard = keyboardFrame.size.height
// Now is stored in your heightKeyboard variable
}
}
최신 답을 찾을 수 없어서 iOS 11.0 Simulators:
| iOS 11 장치 | 화면 높이 | 초상화 | 풍경. |
|---|---|---|---|
| 아이폰 4s | 480.0 | 216.0 | 162.0 |
| 아이폰5, 아이폰5s, 아이폰SE | 568.0 | 216.0 | 162.0 |
| 아이폰6, 아이폰6s, 아이폰7, 아이폰8, 아이폰X | 667.0 | 216.0 | 162.0 |
| 아이폰6플러스, 아이폰7플러스, 아이폰8플러스 | 736.0 | 226.0 | 162.0 |
| iPad 5세대, iPad Air, iPad Air 2, iPad Pro 9.7, iPad Pro 10.5, iPad Pro 12.9 | 1024.0 | 265.0 | 353.0 |
제가 만든 표는 iPhone과 iPad 키보드의 높이를 모두 포함하고 있습니다. 가로와 세로 모드 모두 도구 모음을 켜고 끌 수 있습니다.
저는 당신의 코드에서 이 차원들을 어떻게 사용할 수 있는지 설명하기도 했습니다.
보기를 레이아웃하기 전에 키보드의 치수를 알아야 하는 경우에만 이러한 치수를 사용해야 합니다.그렇지 않으면 다른 답변의 솔루션이 더 잘 작동합니다.
언급URL : https://stackoverflow.com/questions/11284321/what-is-the-height-of-iphones-onscreen-keyboard
'programing' 카테고리의 다른 글
| OR 문을 사용하여 Pandas 데이터 프레임 필터링 (0) | 2023.07.27 |
|---|---|
| MySQL - 각 행의 연결된 테이블에서 COUNT()가 표시된 열을 가져옵니다. (0) | 2023.07.27 |
| Oracle - Materialized View는 전체 새로 고침 중에도 액세스할 수 있습니다.이것은 어떻게 작동합니까? (0) | 2023.07.27 |
| DAO 및 서비스 계층(JPA/하이버네이트 + 스프링) (0) | 2023.07.27 |
| 도커 내에서 MariaDB를 실행할 수 없습니다. (0) | 2023.07.22 |
