2012-05-27 71 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