你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS學習筆記——視圖上移與鍵盤彈回

iOS學習筆記——視圖上移與鍵盤彈回

編輯:IOS開發綜合

在學習iOS開發的過程中總是遇見鍵盤出現時,遮蓋了輸出口UITextField,無法看到用戶自己輸出的內容。這時就需要對當前視圖做出相應的上移,當輸出結束時點擊屏幕的任意地方,使鍵盤彈回去。

第一種方法是在UITextField開始編輯前和編輯後調用的方法裡添加移動視圖的方法;第二種方法是新創建一個視圖移動的方法,兩次都調用,並判斷是否做出相應移動。

把兩種方法貼出來,都需要在.h文件中添加UITextFieldDelegate協議,還需要設置委托,此處略過

//***更改frame的值***//
//在UITextField 編輯之前調用方法
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    //設置動畫的名字
    [UIView beginAnimations:@"Animation" context:nil];
    //設置動畫的間隔時間
    [UIView setAnimationDuration:0.20];
    //??使用當前正在運行的狀態開始下一段動畫
    [UIView setAnimationBeginsFromCurrentState: YES];
    //設置視圖移動的位移
    self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y - 100, self.view.frame.size.width, self.view.frame.size.height);
    //設置動畫結束
    [UIView commitAnimations];
}
//在UITextField 編輯完成調用方法
- (void)textFieldDidEndEditing:(UITextField *)textField
{
    //設置動畫的名字
    [UIView beginAnimations:@"Animation" context:nil];
    //設置動畫的間隔時間
    [UIView setAnimationDuration:0.20];
    //??使用當前正在運行的狀態開始下一段動畫
    [UIView setAnimationBeginsFromCurrentState: YES];
    //設置視圖移動的位移
    self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y + 100, self.view.frame.size.width, self.view.frame.size.height);
    //設置動畫結束
    [UIView commitAnimations];
}

第二種方法:

//在UITextField 編輯之前調用方法
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    [self animateTextField: textField up: YES];    
}
//在UITextField 編輯完成調用方法
- (void)textFieldDidEndEditing:(UITextField *)textField
{
    [self animateTextField: textField up: NO];
}
//視圖上移的方法
- (void) animateTextField: (UITextField *) textField up: (BOOL) up
{
    //設置視圖上移的距離,單位像素
    const int movementDistance = 100; // tweak as needed
    //三目運算,判定是否需要上移視圖或者不變
    int movement = (up ? -movementDistance : movementDistance);
    //設置動畫的名字
    [UIView beginAnimations: @"Animation" context: nil];
    //設置動畫的開始移動位置
    [UIView setAnimationBeginsFromCurrentState: YES];
    //設置動畫的間隔時間
    [UIView setAnimationDuration: 0.20];
    //設置視圖移動的位移
    self.view.frame = CGRectOffset(self.view.frame, 0, movement);
    //設置動畫結束
    [UIView commitAnimations];    
}
使鍵盤彈回的方法,輸入觸摸的方法:

//點擊屏幕,讓鍵盤彈回
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self.view endEditing:YES];
}




  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved