Как настроить положение textLabel, detailTextLabel и переключателя в tableview?

#iphone

#iPhone

Вопрос:

У меня есть textLabel, detailTextLabel, пользовательский переключатель в ячейке tableview. Я хочу настроить их положение. Как я могу это сделать? Я уже отрегулировал высоту ячейки.

 UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectMake(200, 10, 50, 30);
cell.accessoryView = switchView;
  

Приведенный выше код не работает для switch. Он всегда отображается в одной и той же позиции.

Ответ №1:

Вы можете настроить свою собственную UITableViewCell, например, MyTableViewCell, и настроить элементы управления в layoutSubviews.

например:

 - (void)layoutSubviews {
    [super layoutSubviews];

    // Adjust size
    self.imageView.bounds = CGRectMake(0,0,44,44);

    // Adjust position
    self.textLabel.frame = CGRectMake(self.textLabel.frame.origin.x,
                                      self.textLabel.frame.origin.y - 10,
                                      self.textLabel.frame.size.width,
                                      self.textLabel.frame.size.height);
  

}

Ответ №2:

Вам нужно будет добавить его в качестве подзаголовка в представление содержимого ячейки следующим образом:

[[cell contentView] addSubView:switchView]; и x, y SwitchView должны быть относительно tableViewCell.

Комментарии:

1. Я добавил [[cell contentView] addSubview:SwitchView]; но это не имеет никакого значения.

2. Вы закомментировали строку cell.accessoryView?

3. Я забыл удалить эту строку. Теперь я работаю для switch. Как насчет текста и подробного текста?

4. @user698200 Аналогично, [[cell contentView] добавляет subview:detailTextLabel]