2012-05-27 38 views
0

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

回答

0

通过复杂的和无用的代码看后,我发现了一个快速的解决方案在这里:

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

这里这个答案非常温和地处理这种情况,这要归功于丹雷

关于快速的注意:调用这个功能不太适合我的魅力

-(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]; 
} 
0

可以使用

UITextViewTextDidBeginEditing 

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

– bringSubviewToFront: 

将textview带到前面。

+0

在我的键盘前面? – Bartu

+0

不,' - bringSubviewToFront:'不会在键盘前移动任何东西。事实上,没有什么可以做到的。 – apple16

+0

也许有点解释会让它更清晰 – Bartu