久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

在 iOS 9 Shortcut Bar only 模式下,與鍵盤頂部對齊的

View aligned to top of keyboard appears in wrong place in iOS 9 Shortcut Bar only mode(在 iOS 9 Shortcut Bar only 模式下,與鍵盤頂部對齊的視圖出現在錯誤的位置)
本文介紹了在 iOS 9 Shortcut Bar only 模式下,與鍵盤頂部對齊的視圖出現在錯誤的位置的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

iOS 9 為 iOS 8 添加了
(注意紅色視圖是如何連接到鍵盤頂部的)

實際行為:

<塊引用>

將紅色視圖附加到鍵盤頂部的正確方法是什么?

解決方案

問題在于大多數代碼 (

當鍵盤處于僅快捷欄模式時,這是矩形:

<塊引用>

請注意鍵盤的大部分是如何在屏幕外的,但它仍然是相同的高度.

要獲得正確的行為,請使用 CGRectIntersection 與視圖的邊界和該視圖內的鍵盤框架:

//? 好代碼,使用CGRect keyboardScreenEndFrame = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];CGRect keyboardViewEndFrame = [self.view convertRect:keyboardScreenEndFrame fromView:self.view.window];CGRect keyboardFrame = CGRectIntersection(self.view.bounds, keyboardViewEndFrame);CGFloat keyboardHeight = keyboardFrame.size.height;//= 55

出于同樣的原因,應該使用 UIKeyboardFrameEndUserInfoKey 而不是 UIKeyboardFrameBeginUserInfoKey.

iOS 9 adds a Shortcut Bar to the iOS 8 QuickType bar.

As part of this change, if you connect a bluetooth keyboard to an iPad, the keyboard is in a minimized Shortcut Bar only mode (which can be simulated by pressing command-k in the simulator).

I have code which gets the keyboard height using a method similar to the following:

CGRect keyboardFrame = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGFloat keyboardHeight = keyboardFrame.size.height; // = 313

The problem is that when the keyboard is toggled between the expanded and collapsed state, the height remains the same, causing my view to appear in its old location:

Desired behavior:


(Notice how the red view is attached to the top of the keyboard)

Actual behavior:

What's the correct way to get the red view to be attached to the top of the keyboard?

解決方案

The problem is that most code out there (including Apple's) ignores the fact that UIKeyboardFrameEndUserInfoKey is a CGRect and not a CGSize.

// ? Bad code, do not use
- (void)keyboardWasShown:(NSNotification*)aNotification {
    NSDictionary* info = [aNotification userInfo];
    CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
    CGRect bkgndRect = activeField.superview.frame;
    bkgndRect.size.height += kbSize.height;
    [activeField.superview setFrame:bkgndRect];
    [scrollView setContentOffset:CGPointMake(0.0, activeField.frame.origin.y-kbSize.height) animated:YES];
}

Here you see that only the keyboard height (kbSize.height) is being used. The origin of the rect is important, and should not be ignored.

When the keyboard is visible, this is the rect that is reported:

When the keyboard is in Shortcut Bar only mode, this is the rect:

Notice how the majority of the keyboard is offscreen, yet it is still the same height.

To get the correct behavior, use CGRectIntersection with the view's bounds and the keyboard frame within that view:

// ? Good code, use
CGRect keyboardScreenEndFrame = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect keyboardViewEndFrame = [self.view convertRect:keyboardScreenEndFrame fromView:self.view.window];
CGRect keyboardFrame = CGRectIntersection(self.view.bounds, keyboardViewEndFrame);
CGFloat keyboardHeight = keyboardFrame.size.height; // = 55

For this same reason, UIKeyboardFrameEndUserInfoKey should be used as opposed to UIKeyboardFrameBeginUserInfoKey.

這篇關于在 iOS 9 Shortcut Bar only 模式下,與鍵盤頂部對齊的視圖出現在錯誤的位置的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How to draw stars using Quartz Core?(如何使用 Quartz Core 繪制星星?)
Why does giving addArcWithCenter a startAngle of 0 degrees make it start at 90 degrees?(為什么給 addArcWithCenter 一個 0 度的 startAngle 使它從 90 度開始?)
Find the CGPoint on a UIView rectangle intersected by a straight line at a given angle from the center point(在與中心點成給定角度的直線相交的 UIView 矩形上找到 CGPoint)
Which is the best way to estimate measure of photographed things?(哪種方法是估計拍攝物體尺寸的最佳方法?)
How to convert an Int to a Character in Swift(如何在 Swift 中將 Int 轉換為字符)
How to create a hex color string UIColor initializer in Swift?(如何在 Swift 中創建十六進制顏色字符串 UIColor 初始化程序?)
主站蜘蛛池模板: 成人福利网 | 美女久久久久久 | 国产精品99久久久久久久久久久久 | 国产在线欧美 | 长河落日连续剧48集免费观看 | 一起操在线 | 国产一区二区三区久久 | 色网站在线| av片在线免费观看 | 九九久久免费视频 | 免费观看全黄做爰大片视频美国 | 午夜免费网站 | 午夜在线视频观看 | 国产天堂在线 | 秋霞国产 | 国产91精品在线观看 | 91精品国产99久久久久久红楼 | 午夜视频一区二区三区 | 中文在线一区 | 午夜国产视频 | 夜夜操av | 不卡视频一区二区 | 一区二区在线视频 | 亚洲不卡在线观看 | 久久av网| 懂色av一区二区夜夜嗨 | 国产欧美激情 | 亚洲精品www久久久久久广东 | av福利在线观看 | 神马福利视频 | 欧美日韩在线一区二区 | 免费视频成人 | 亚洲高清免费视频 | 国产精品视屏 | 91伊人 | 日本一级大片 | 日韩欧美一区在线 | 亚洲黄色录像 | 日韩久久久| 欧美日韩中文在线 | 在线伊人网 |