我对2.6(ios)中的一个新的phonegap功能有问题,最后它们包含一个缩小webview以处理固定元素的选项。不幸的是,当HideKeyboardFormAccessoryBar
选项设置为true时,会出现一个奇怪的白条而不是AccessoryView(请查看screenshot)。
当我将KeyboardShrinksView
设置为false
有没有人遇到过新版本的类似问题?这是一个错误还是一个功能? ;)
欢呼声 垒。
答案 0 :(得分:5)
这是一个错误。这是因为在显示键盘后WebView没有正确调整大小。默认情况下,PhoneGap通过键盘高度减去视图框来调整WebView的高度。但是,它没有考虑表格附件栏隐藏在该计算中的事实。
这是一个临时解决方案,而PhoneGap修复了这个错误:
在CDVViewController.m中(在Classes / Cleaver下),转到第140行。它应该在(void)keyboardWilLShowOrHide函数内。在showEvent if语句中,它根据键盘的高度计算WebView的新大小。
将if语句的内容更改为:
if (showEvent) {
newFrame.size.height -= keyboardFrame.size.height;
if ([@"true" isEqualToString: self.settings[@"HideKeyboardFormAccessoryBar"]]) {
newFrame.size.height += 45;
}
}
我添加了一个额外的if语句,它还检查了HideKeyboardFormAccessoryBar配置。如果设置了它,它会将WebView的大小增加45个像素(表单附件栏的高度)。
答案 1 :(得分: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];
}
答案 2 :(得分:0)
这绝对是个错误。几周后,phonegap开发团队将在2.7版本中修复此问题。
答案 3 :(得分:0)
我刚刚检查了我的代码,我有2.6并且已经存在此修复程序。但它不起作用,我仍然看到灰条与相同的条件。怎么会这样?
编辑:看起来我的一个队友做了这个修复并解决了这个问题。问题是,您仍然可以看到灰色空间,并且很快就会被删除。