[英]How to animate up UITableView when Keyboard pops up?
我有10行的UITableView
。 每個單元格中都有一個UITextField
。
問題是,當我單擊底部單元格中的UITextField
時,鍵盤彈出並阻止該單元格。 我該如何處理? 我是否需要為tableview設置動畫?
更新的代碼:
- (void)textFieldDidBeginEditing:(UITextField *)textField{
self.vitalsTableView.contentInset=UIEdgeInsetsMake(0,0,200,0);
NSIndexPath *path = [self.vitalsTableView indexPathForSelectedRow];
[self.vitalsTableView scrollToRowAtIndexPath:path atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
使用- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated
UITableView的- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated
方法
例:
[tableView scrollToRowAtIndexPath:cellIndexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
會將您的tableView滾動到盡可能低的偏移量,以保持該單元格可見。 如果單元格下面沒有足夠的單元格,則可以為表設置contentInset以允許滾動偏移量。
也許您的UITextField委托是表視圖控制器。 您可以在- (void)textFieldDidBeginEditing:(UITextField *)textField
上進行調用
對於底部單元格:
- (void)textFieldDidBeginEditing:(UITextField *)textField{
tableView.contentInset=UIEdgeInsetsMake(0,0,200,0);
[tableView scrollToRowAtIndexPath:cellIndexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
- (void)textFieldDidBeginEditing:(UITextField *)textField{
tableView.contentInset=UIEdgeInsetsMake(0,0,0,0);
}
在任何情況下,將運行在iOS中7同樣的問題:我發現這個問題是發生在我身上,只是因為我忘了打電話給超類的實現的viewWillAppear:
在我自己的viewWillAppear:
實施。 一行解決了該問題:
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// Do whatever you need to
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.