當iPad虛擬鍵盤出現時,它會覆蓋我的視圖中的一些文本框。有沒有辦法在鍵盤出現時向上移動ViewController?當iPad出現鍵盤時如何移動視圖?
0
A
回答
1
我的建議是將您的對象放在UIScrollView
上,然後當鍵盤出現時,您可以使用scrollRectToVisible:
。
[scroller scrollRectToVisible:frame animated:YES];
7
我已經爲我的一個應用程序寫了這段代碼。
它會自動檢測TextField的位置並相應地滾動baseView。
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[self animateTextField:textField up:YES];
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
[self animateTextField:textField up:NO];
}
- (void) animateTextField: (UITextField*) textField up: (BOOL) up
{
CGPoint temp = [textField.superview convertPoint:textField.frame.origin toView:nil];
UIInterfaceOrientation orientation =
[[UIApplication sharedApplication] statusBarOrientation];
if (orientation == UIInterfaceOrientationPortrait){
if(up) {
int moveUpValue = temp.y+textField.frame.size.height;
animatedDis = 264-(1024-moveUpValue-5);
}
}
else if(orientation == UIInterfaceOrientationPortraitUpsideDown) {
if(up) {
int moveUpValue = 1004-temp.y+textField.frame.size.height;
animatedDis = 264-(1004-moveUpValue-5);
}
}
else if(orientation == UIInterfaceOrientationLandscapeLeft) {
if(up) {
int moveUpValue = temp.x+textField.frame.size.height;
animatedDis = 352-(768-moveUpValue-5);
}
}
else
{
if(up) {
int moveUpValue = 768-temp.x+textField.frame.size.height;
animatedDis = 352-(768-moveUpValue-5);
}
}
if(animatedDis>0)
{
const int movementDistance = animatedDis;
const float movementDuration = 0.3f;
int movement = (up ? -movementDistance : movementDistance);
[UIView beginAnimations: nil context: nil];
[UIView setAnimationBeginsFromCurrentState: YES];
[UIView setAnimationDuration: movementDuration];
if (orientation == UIInterfaceOrientationPortrait){
baseViewController.view.frame = CGRectOffset(baseViewController.view.frame, 0, movement);
}
else if(orientation == UIInterfaceOrientationPortraitUpsideDown) {
baseViewController.view.frame = CGRectOffset(baseViewController.view.frame, 0, movement);
}
else if(orientation == UIInterfaceOrientationLandscapeLeft) {
baseViewController.view.frame = CGRectOffset(baseViewController.view.frame, 0, movement);
}
else {
baseViewController.view.frame = CGRectOffset(baseViewController.view.frame, 0, movement);
}
[UIView commitAnimations];
}
}
1
時候做起來=無變化ValayPatel代碼「如果」語句if(animatedDis>0 || !up)
的條件,否則轉移的觀點是總是在前面的位置。
+0
我認爲原始代碼的目的是animatedDis是一個屬性,因此編輯完成後> 0值將被保留,導致視圖動畫到原始位置。 – Noam
相關問題
- 1. 當鍵盤出現時移動視圖
- 2. 如何在鍵盤出現在內部時移動視圖ConstraintLayout
- 3. 當虛擬鍵盤出現彈出在iPad中向上移動?
- 4. 在鍵盤出現時發出移動視圖Swift
- 5. 鍵盤出現時移動視圖 - 僅在編輯時?
- 6. 保持鍵盤上方的視圖 - 當出現鍵盤時
- 7. 當鍵盤出現時,如何使CCTextFieldTTF向上移動:Cocos2d-x
- 8. 帶有TextField的UITableView並在鍵盤出現時移動視圖
- 9. Xcode:在鍵盤出現時移動視圖
- 10. 當鍵盤出現時移動桌面視圖的內容插入
- 11. 如何當鍵盤出現
- 12. 當鍵盤彈出時移動UIButton
- 13. 鍵盤出現時向上移動UITextField
- 14. 鍵盤出現時移動UIView
- 15. 鍵盤出現時移動UIView
- 16. 如何在鍵盤出現時使android視圖滾動?
- 17. 如何在鍵盤出現時向上滾動視圖?
- 18. 如何在目標c中出現鍵盤時滾動視圖?
- 19. 當彈出鍵盤時,如何將整個視圖向上移動? (Swift)
- 20. Swift:當出現鍵盤時滾動UITableView
- 21. 當鍵盤出現時向上移動UIView
- 22. 當軟鍵盤出現時移動佈局
- 23. 當鍵盤出現時,UIViewController向上移動
- 24. 當鍵盤出現時將UITextField和UITableView向上移動
- 25. 當鍵盤出現時,UIPopoverController在iOS 7上奇怪地移動
- 26. Swift:當鍵盤出現時向上移動UILabel
- 27. 當鍵盤出現時jQuery Mobile固定頁腳正在移動
- 28. 滾動視圖與滾動視圖裏面,當軟鍵盤出現時,父滾動視圖不滾動
- 29. 當鍵盤出現
- 30. 當鍵盤顯示在UITextField上時移動視圖
我在這方面很新,你有一個簡單的例子,關於如何做到這一點? 謝謝! – Guerrix
謝謝,我真的很感激。 – Guerrix