2013-04-10 51 views
3

我有一個在2.6(IOS)新的phonegap功能之一的問題,最後他們包括一個選項收縮webview來處理固定的元素。不幸的是,如果將HideKeyboardFormAccessoryBar選項設置爲true,則會出現一個奇怪的白條而不是AccessoryView(請參閱screenshot)。 當我將KeyboardShrinksView設置爲false時,不會發生這種情況Phonegap 2.6與KeyboardShrinksView和HideKeyboardFormAccessoryBar

有沒有人遇到過與新版本類似的問題?這是一個錯誤還是一個功能? ;)

乾杯 地下。

回答

5

這是一個錯誤。這是由於顯示鍵盤後WebView未被正確調整大小所致。默認情況下,PhoneGap通過用鍵盤高度減去視圖框架來調整WebView的高度。但是,它沒有考慮到表單附件欄在計算中隱藏的事實。

這裏是一個臨時的解決方案,而這PhoneGap的修復這個bug:

在CDVViewController.m(下類/斧),轉到行140應該是(無效)keyboardWilLShowOrHide函數中。在showEvent if語句中,它根據鍵盤的高度計算WebView的新大小。

更改if語句的內容:

if (showEvent) { 
    newFrame.size.height -= keyboardFrame.size.height; 
    if ([@"true" isEqualToString: self.settings[@"HideKeyboardFormAccessoryBar"]]) { 
     newFrame.size.height += 45; 
    } 
} 

我補充說,也檢查HideKeyboardFormAccessoryBar配置一個額外的if語句。如果已設置,則會將WebView的大小增加另外45個像素(表單附件欄的高度)。

+0

真棒改變背景顏色!非常感謝你! – Horst 2013-05-03 13:29:42

0

這絕對是一個錯誤。 phonegap dev團隊將在幾周內在2.7版本中解決這個問題。

0

我剛剛檢查過我的代碼,我有2.6,這個修復已經存在。但它不起作用,我仍然看到條件相同的灰色條。這怎麼可能?

編輯:它看起來像我的一個隊友做了這個修復並解決了問題。事情是,你仍然可以看到灰色的空間,它很快就會被移除。

1

雖然鍵盤正在向上移動,但似乎webview已經調整大小,背景是白色的,因此會顯示白色背景。我的HTML正文背景是黑色的,所以在白色背景閃爍時看起來很奇怪。有誰知道如何更新UIView的背景?

視頻在慢鏡頭中重現問題。 http://www.youtube.com/watch?v=iOjdxJuYp8c

謝謝!

湯姆

編輯:我能夠通過將此代碼添加到MainViewConetroller.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
    self.view.backgroundColor = [UIColor colorWithRed:51/255.0 green:51/255.0 blue:51/255.0 alpha:1]; 
} 
+0

很酷! 因爲我有不同的背景顏色,它不是最好的解決方案,但看起來比簡單的陰影白色更好。 – Horst 2013-08-23 08:03:40