在UITextView编辑时移动UIView

时间:2012-05-27 20:20:16

标签: iphone keyboard uitextview shift uitextviewdelegate

我有一个很大的评论字段,即UITextView。由于键盘出现,并且UITextField几乎是整个视图的一半,因此用户几乎看不到该字段。我想要做的是当键盘出现时(即UITextView正在编辑)我想要将视图向上移动以使其完全可见,并且用户友好。

2 个答案:

答案 0 :(得分:0)

您可以使用

UITextViewTextDidBeginEditing

重新排列视图中的项目。并使用

– bringSubviewToFront:

将textview带到前面。

答案 1 :(得分:0)

在查看复杂无用的代码后,我在这里找到了一个快速解决方案:

https://stackoverflow.com/a/5221243/1139419

这里的答案非常温和地处理了这种情况,感谢Dan Ray

快速说明:调用此功能并不能为我带来魅力

-(void)scrollToView:(UIView *)view {
    CGRect theFrame = view.frame;
    float y = theFrame.origin.y - 15;
    y -= (y/1.7);
    [self scrollToY:-y]; 
}

所以我编辑了这个功能:

-(void)scrollToView:(UIView *)view withCoefficient:(CGFloat)coeff
{
    CGRect theFrame = view.frame;
    float y = theFrame.origin.y;
    y -= (y/coeff);
    [self scrollToY:-y];
}
进入这个。这样我可以尝试滑动我的主视图哪个系数是正确的。而不是1.7,2为我做了魅力。请访问链接以获取完整解决方案。另请注意,如果存在,您可能也希望为UINavigationController应用相同的内容;

-(void)textViewDidBeginEditing:(UITextView *)textView
{
    [self.view scrollToView:textView withCoefficient:2.0];
    [self.navigationController.view scrollToView:textView withCoefficient:2.0];
}