Я делаю страницу настроек и хочу, чтобы в первой строке первого раздела был UISwitch. Я добился этого, используя следующий код:
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
}
if (indexPath.section == 0){
[[cell textLabel] setText:[table1labels objectAtIndex:indexPath.row]];
if (indexPath.row == 0 && indexPath.section == 0){
UISwitch *switchview = [[UISwitch alloc] initWithFrame:CGRectZero];
cell.accessoryView = switchview;
}else{
[[cell detailTextLabel] setText:@"test"];
}
}else{
[[cell textLabel] setText:[table2labels objectAtIndex:indexPath.row]];
[[cell detailTextLabel] setText:@"test"];
}
return cell;
}
Когда страница загружается, первая строка в первом разделе имеет переключатель UIS, а все остальные говорят «тест». Однако, когда я прокручиваю страницу, другие UIS-переключатели появляются случайно. Они не заменяют текст «тест», а просто толкают его влево. Это не происходит на каждом из них. Просто случайно, когда ячейка покидает вид и возвращается в вид. Может кто-нибудь сказать мне, как это исправить?
Я тестировал только на симуляторе 5.1. Еще не на реальном устройстве. Может ли это быть проблемой симулятора?