0
我有一個自定義單元格與6行tableView。viewWithTag:reloadData後返回零
自定義單元有一個UILabel和一個UISwitch。 在方法「的cellForRowAtIndexPath:」我有:
static NSString *CellIdentifier = @"optionsCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
UISwitch *optionsSwitch = (UISwitch *)[cell viewWithTag:300];
UILabel *optionsLabel = (UILabel *) [cell viewWithTag:200];
NSLog(@"%@", optionsSwitch);
NSLog(@"%@", optionsLabel);
當的tableView第一次(從故事板)我正確地得到了兩個對象(我加入的結果只對表的第一行實例化視圖):
但是當我發送reloadData方法到的tableView(該UISwitch狀態可以通過編程方式改變,所以我更新顯示之前的實現代碼如下)我正確地得到的UILabel而UISwitch是零:
爲什麼UILabel的工作原理和UISwitch不是?
UISizeClasses未啓用,如另一篇文章中有關此問題的建議。
感謝,科拉多
其實我不會更改標籤:標籤只在基於indexPath.row的「cellForRowAtIndexPath:」中進行分配。出於測試目的,我甚至不改變UISwitch的狀態或其他任何東西......我只是重新加載tableview而不改變任何東西。 – Corrado 2015-04-04 14:50:34
'該標籤只在「cellForRowAtIndexPath:」基於indexPath.row'分配 - 這正是問題,你不能這樣做,然後重新使用該單元... – Wain 2015-04-04 15:04:02
你是對的,謝謝! – Corrado 2015-04-04 15:51:01