我一直在玩UITableView
一段時間,並在擊中鍵盤和滾動的問題,我決定通過使用UITableViewController
解決它,利用當鍵盤出現時自動滾動。不幸的是,這不會發生在我身上,我無法弄清楚爲什麼,我嘗試了很多東西,並放棄向社區提出問題。UITableViewController不自動滾動與鍵盤一旦擁有TableView被推上UIViewController的子視圖
這是我到目前爲止有:
- 定期
UIViewController
處理一個UIView
(MyView.xib)(這是 也根視圖) - 定期
UITableViewController
處理一個UITableView
在單獨的XIB
文件(MyTable.xib)中 - 常規
UITableViewCell
已被拖入(MyTable.xib)並與並排居住。這UITableViewCell
沒有自定義類。還有一個連接到UITableViewController
類的插座。 - 定期
UITextField
位於下UITableViewCell
- 我在MyTable.xib相關文件的所有者身份對
UITableViewController
類 - 我已經連接了
UITableView
的委託和數據源,以文件的所有者
這是它的外觀在IB在MyTable.xib
UITableView
UITableViewCell
UITextField
所以,當我在的UITableViewController生成我的錶行,我出列第5行是常規電池和最後一行我回到我的出口「了myCell」 (UITableViewCell中)。這是具有UITextField的那個。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
if (indexPath.row == 5) return myCell;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [NSString stringWithFormat:@"Test"];
return cell;
}
最後,我ViewController
的viewDidLoad
,我創建了UITableViewController
的實例並顯示它。它成功地顯示了5行,並在底部顯示了我的自定義行。所有在主視圖,但是......
- (void)viewDidLoad
{
[super viewDidLoad];
mtc = [[MortgageTableController alloc] initWithNibName:@"MyTable" bundle:nil];
mtc.view.frame = CGRectMake(0, 44, 320, 375);
[self.view addSubview:mtc.view];
}
我遇到的,如果我點擊UITextField
,我沒有看到在視圖中自動滾屏表中的問題。我認爲這是使用UITableViewController
的優勢之一,或者我可能在這裏做錯了什麼。
我也嘗試選擇和/或滾動表格到行,但沒有運氣。
的子類,提出和回答。 http://stackoverflow.com/questions/5265559/get-uitableview-to-scroll-to-the-selected-uitextfield-and-avoid-being-hidden-by – dbrajkovic 2012-03-02 05:33:40