我的UITableViewCell原型中有一個UISwitch。UITableView中的UISwitch Bug
問題是,當我打開其中一個開關時,其中一個未顯示的開關也打開。
這不會發生在顯示所有單元格的iPad版本中。
下面是一些代碼:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *identifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
Notification *notification = [notifications objectAtIndex:indexPath.row];
UILabel *titleLabel = (UILabel *) [cell viewWithTag:100];
UISwitch *newsSwitch = (UISwitch *) [cell viewWithTag:101];
UIImageView *imageView = (UIImageView *) [cell viewWithTag:102];
[titleLabel setText:[notification name]];
[imageView setImage:[UIImage imageNamed:[notification image]]];
BOOL isOn = [storage boolForKey:[NSString stringWithFormat:@"notification_%@", [notification name]]];
[newsSwitch setOn:isOn];
[newsSwitch setTag:indexPath.row];
[newsSwitch addTarget:self action:@selector(didChangeStateForSwitch:) forControlEvents:UIControlEventValueChanged];
return cell;
}
你的意思是,還沒有在屏幕上的開關也打開?然後這個錯誤很可能出現在你的'didChangeStateForSwitch:'方法中,請更新你的問題並告訴我們這個方法的代碼。 – DarkDust
我從didChangeStateForSwitch中刪除了代碼:並且行爲相同。 –