2015-08-12 4 views
1

Мне нужен пользовательский cell с label и switch. Теперь главная проблема заключается в том, что я не могу отобразить switch. Я пробовал несколько методов, включая добавление switch программно к ячейке accessoryView.UISwitch не отображается в пользовательской ячейке UITableView

Я использовал IB, добавил switch к соте, подключил IBOutlet. Я также попытался добавить switch программно, в клетки awakeFromNib:

- (void)awakeFromNib { 
    [super awakeFromNib]; 
    if (!self.fieldSwitch) { 
     self.fieldSwitch = [[UISwitch alloc] init]; 
     [self.fieldSwitch addTarget:self action:@selector(switchUpdatedValue:) forControlEvents:UIControlEventValueChanged]; 
     self.fieldSwitch.onTintColor = [ColorManager sharedInstance].genericSwitchColor; 
     self.accessoryView = self.fieldSwitch; 
    } 
} 

Это не было абсолютно никакого эффекта; Я также попытался добавить его в качестве поднабора в ячейку contentView, а затем позвонить bringSubviewToFront:. Опять же, никакого успеха.

Я проверил, и self, accessoryView, fieldSwitch Ни один из них не был nil.

Кто-нибудь знает, что может быть так неправильно? на стороне примечания, кто-нибудь понимает, почему по умолчанию блокируется добавление элемента управления из IB?

+0

Вы пытались добавить его в cellForRowAtIndexPath? – anhtu

+0

Да, и ничего не меняется. Что более неприятно, так это то, что я не понимаю, как элементы управления, добавленные из IB, не отображаются. – nightfixed

ответ

1

Если вы используете классы размеров, вам необходимо установить ограничение для UISwitch. Например, если вы используете класс Any Any size, и вы поместите UISwitch в ячейку, он может отображаться далеко вправо. (Я бы разместил это как комментарий, но не достаточно rep)

+0

Вы были правы. «TableView» был помещен в UIViewController и забыл привязать края «tableView» к краям «супервизора». – nightfixed

Смежные вопросы