jmr*_*706 10 uiscrollview uikeyboard ios8
我当前在键盘处于活动状态时更改了滚动视图大小.我还使用箭头允许用户快速移动到下一个文本字段.我的scrollRectToVisible在垂直方向上无法正常工作.它正确地水平移动.我的小数点有问题
2014-09-12 10:29:24.039 TS[1895:455658] Can't find keyplane that supports type 8 for keyboard iPhone-Portrait-DecimalPad; using 1425143906_Portrait_iPhone-Simple-Pad_Default
Run Code Online (Sandbox Code Playgroud)
我还介绍了以下代码.
- (void)keyboardDidShow:(NSNotification *)n {
// Find top of keyboard input view
CGRect keyboardRect = [[[n userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
keyboardRect = [self.view convertRect:keyboardRect fromView:nil];
CGFloat keyboardTop = keyboardRect.origin.y;
// Resize scroll view
CGRect newScrollViewFrame = CGRectMake(0, 0, self.view.bounds.size.width, keyboardTop);
newScrollViewFrame.size.height = keyboardTop - self.view.bounds.origin.y;
[self.scrollView setFrame:newScrollViewFrame];
}
Run Code Online (Sandbox Code Playgroud)
我注意到我的十进制键盘的keyboardRect是244,默认键盘的键盘是207.我不知道如何解决这个问题.此问题也只在iOS 8中出现.我的应用程序在iOS 7中没有任何问题.感谢您的帮助.
更新:我发现当最初选择文本字段时,滚动视图会相应地移动.当您在键盘启动时选择另一个文本字段时,问题发生时.看来,scrollview将其大小重置为原始尺寸.为什么会这样?有没有办法阻止这种情况发生?
1)问题
请参阅这篇文章:Xcode iOS 8 不支持键盘类型
2)问题:
不明白你的意思。可能与 iOS 8 键盘类型变化有关。请记住,矩形包含您添加的任何附件视图。
3)更新部分的附加问题:
我遇到了同样的问题,并找出了一些线索。
我在 viewcontroller.view 内部放置了一个滚动视图,并在该滚动视图内部放置了一堆文本字段。我在 UIKeyboardDidShowNotification 和 UIKeyboardWillHideNotification 上调整滚动视图框架的大小。它在 iOS7 上工作正常,但在 iOS8 上,当您关注另一个文本字段(成为第一响应者)时,滚动视图将默默地调整回正常大小。
我进一步研究了一下。我有另一个页面,它是在 iOS8 升级之前创建的,并且使用相同的逻辑仍然可以完美地工作。但一个区别是,在该页面中,滚动视图是以编程方式添加的,而这个故障页面是自动布局的(滚动视图对于 viewcontroller.view 具有所有边距为零的约束)。
所以我做了一个测试,调整了keyboardshow/hide上viewcontroller.view的框架和边界的大小,问题就消失了。所以我猜测 iOS8 在视图第一响应者更改时添加了整个页面重新布局(重新计算约束)。
不确定什么是最好的解决方案。当我找到更好的方法来处理这个问题时,我会更新这个答案。
归档时间: |
|
查看次数: |
2106 次 |
最近记录: |