Я пытаюсь добавить UIView, который должен зачеркнуть текст (не беспокойтесь о горизонтальном смещении).Добавить subview в UITableViewCell по выбору
Однако при выборе строки строка добавляется несколькими строками ниже. Зачем?
Вот мой код:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"%@", indexPath);
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
UILabel *label = cell.textLabel;
CGSize textSize = [[label text] sizeWithAttributes:@{NSFontAttributeName:[label font]}];
CGFloat strikeWidth = textSize.width;
UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(self.view.bounds.size.height/2, 200, strikeWidth, 2)];
lineView.backgroundColor = [UIColor redColor];
lineView.tag = 100;
[cell.contentView addSubview:lineView];
}
Это только устанавливает атрибут текста, когда ячейка выбрана (когда вы держите палец на ячейке).Как только вы удаляете палец, удаляется прочерк. Мне нужно переключиться с помощью 'cell.textLabel.text' на' cell.textLabel.attributedText'? –
Да, вы должны установить свой атрибут атрибута UILabel (предположительно в 'tableView: cellForRowAtIndexPath:', где создается ячейка). – KerrM
Я нашел проблему. Я не обновляю Core Data, а '[tableView reloadData]' запускает 'cellForRowAtIndexPath', который запускает' [self configureCell] ', где я устанавливаю' cell.textLabel.text' :) –