我有一個自定義字段的表格中的單元格,允許使用自定義數字鍵盤輸入數字。這包括一個標籤。當從表格底部切換到頂部時,我需要(i)將表格滾動到頂部並(ii)選擇該表格中的自定義字段。滾動到單元格,然後得到子視圖
我發現如果我在調用scrollToRowAtIndexPath之後直接調用cellForRowAtIndexPath,則前者返回一個空單元格。如果再次調用,在滾動完成後,單元格按預期返回。我需要單元格,以便通過標記值獲取自定義視圖,然後選擇它。
我一直在努力尋找解決方案。有人可能會在滾動後插入一個延遲來完成。但我試過使用performSlector:withObject:afterDelay而沒有成功。
這是我按代碼時調用的代碼。
-(void) customDualViewTabbed:(CustomDualView *)dualView {
UITableViewCell *cell=(UITableViewCell*)([dualView superview].superview);
NSIndexPath *fromIndexPath=[self.tableView indexPathForCell:cell];
NSIndexPath *toIndexPath;
if ((fromIndexPath.row+1)<[self.tableView numberOfRowsInSection:fromIndexPath.section]){
toIndexPath = [NSIndexPath indexPathForRow:(fromIndexPath.row+1) inSection:fromIndexPath.section];
}
else {
toIndexPath = [NSIndexPath indexPathForRow:0 inSection:fromIndexPath.section];
[[self tableView] scrollToRowAtIndexPath:toIndexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
//get cell we tabbed to
cell=[self.tableView cellForRowAtIndexPath:toIndexPath];
CustomDualView *dualView2 =(CustomDualView *)[cell viewWithTag:dualView.tag];
[dualView2 setSelected:(SelectedState)SelectedLeftTabbed];
}
謝謝馬特。我結束了使用scrollViewDidEndScrollingAnimation。它工作得很好。 – fezfox 2010-12-18 01:12:12
很高興聽到它! – 2010-12-18 06:52:46