Добавление разделителя в UITableViewCell

Я создаю приложение (iOS 8.0), тогда как у меня есть UITableViewControlled, созданный с использованием AutoLayout и Storyboards. TableView настроен как статический и сгруппированный, а для разделителя tableView установлено значение none.

Я пытаюсь использовать этот код (вызываемый в viewWillAppear:), чтобы добавить разделитель к двум другим ячейкам, но по какой-то причине он не отображается:

        // Create a separator for the tableView cells
    UIView *separatorViewTop = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 1.0f, self.fromCell.frame.size.width, 1.0f)];
    UIView *separatorViewBottom = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 43.0f, self.fromCell.frame.size.width, 1.0f)];
    separatorViewTop.backgroundColor = [UIColor grayColor];
    separatorViewBottom.backgroundColor = [UIColor grayColor];

    // Add it
    [self.fromCell.contentView addSubview:separatorViewTop];
    [self.toCell.contentView addSubview:separatorViewBottom];

fromCell и toCell и подключены в ИБ через IBOutlets.

Может, пожалуйста, кто-нибудь взглянет на это? Спасибо!


person Erik    schedule 11.05.2015    source источник
comment
Вы называете это в viewDidLoad или где? а fromCell и toCell - это IBOutlets?   -  person Eduardo Iglesias    schedule 11.05.2015
comment
Я называю это viewViewAppear, да, это IBOutlets   -  person Erik    schedule 11.05.2015
comment
Попробуйте поместить этот код в cellForRowAtIndexPath или viewDidAppear   -  person Eduardo Iglesias    schedule 11.05.2015
comment
это работает, поскольку я использую статический tableView?   -  person Erik    schedule 11.05.2015
comment
Вы проверяете, что высота ячейки больше 43pt?   -  person Eduardo Iglesias    schedule 11.05.2015
comment
Почему вы не добавляете их в раскадровку?   -  person Wain    schedule 11.05.2015


Ответы (2)


если вы используете XIB для пользовательской ячейки, то было бы легко добавить эти разделители в сам XIB. Я думаю, что это более гибко по сравнению с добавлением во время выполнения.

person Nitheesh George    schedule 11.05.2015
comment
Я не использую XIB для пользовательской ячейки, но добавление их в построителе интерфейса оказалось лучше. Спасибо! - person Erik; 11.05.2015

Вы также можете создать UIView с высотой 1px и с цветом фона вашего разделителя, который вы хотите

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath  *)indexPath
{
    //Your code to create the tableviewcell...
    //Below 'theCell' is the current cell at index path to return

    if (thisIsTheCellIWantToAddSeparator) {
        UIView *separatorView = [[UIView alloc] initWithFrame:CGRectMake(0, theCell.frame.size.height-1, theCell.frame.size.width, 1)];
        theCell.backgroundColor = YOURCOLOR; //Set the color you want
        [theCell.contentView addSubview:imgView];
    }
    return  theCell;
}
person Niko    schedule 11.05.2015