我已經有段時間沒有編碼iOS了,而且我正在目睹一些新行爲,並且想知道它是如何工作的。如何使用UITableViewController的新單元格重用行爲初始化單元格
它曾經是cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath]
會返回一個細胞或不,但我現在看到的代碼示例缺少初始化部分:
if (cell == nil) {
cell = [MyCellClass new];//and I think somehow registering the cell with the identifier
//Some code here, for example:
//[cell.button addTarget:self action:@selector(buttonPressedAction:) forControlEvents:UIControlEventTouchUpInside];
}
難道要做到這些初始化每次現在,沒有檢查細胞的存在?
編輯:我的使用情況的詳細信息: 我的手機有一個NIB文件,我用我的ViewController
的viewDidLoad
新[[self tableView] registerNib:[UINib nibWithNibName:@"cell" bundle:nil] forCellReuseIdentifier:@"cell"]
。我的ViewController
不存在於任何Nib/StoryBoard中。
我明白了。現在,安裝ControlEvent偵聽器的最佳做法是什麼?在每個'tableView:cellForRowAtIndexPath:',應該調用'addTarget:action:forControlEvents:'? (考慮到在我的使用情況下,它應該以編程方式完成。單元格和控制器不在同一個筆尖/故事板中) – Mabedan
要判斷一行是否被輕敲(大概這就是你想要做的?), tableView:didSelectRowAtIndexPath:在你的表視圖控制器中。 –
我試圖檢測單元格內的UIButton是否已被挖掘 – Mabedan