У меня есть подкласс UITableViewCell
со следующей версией drawRect:
. Он будет рисовать линию внизу ячейки, отстутнув на 30 пунктов, чтобы соответствовать нашему дизайну. tableView.separatorStyle
устанавливается вместо UITableViewSeparatorStyleNone
вместо этого пользовательского чертежа.UITableViewCell пользовательский чертеж CG iOS 7
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
if (!_hideBottomLine) {
CGContextRef ref = UIGraphicsGetCurrentContext();
CGContextSetShouldAntialias(ref, NO);
CGContextSetStrokeColorWithColor(ref, [UIColor colorWithWhite:0.75 alpha:1].CGColor);
CGContextSetLineWidth(ref, 1);
CGContextMoveToPoint(ref, 30, CGRectGetMaxY(rect));
CGContextAddLineToPoint(ref, CGRectGetMaxX(rect), CGRectGetMaxY(rect));
CGContextStrokePath(ref);
}
}
Это отлично работает в iOS 6 и iOS 7 при построении с iOS 6 SDK. Теперь, когда я строю с iOS 7 SDK, строка не появляется.
Я пропустил некоторые изменения с помощью чертежа CG в iOS 7 SDK?
EDIT:
Так что я теперь понимаю, что есть лучший способ сделать это в прошивке 7 с помощью cell.separatorInset
, я также нашел некоторый другой аналогичный CG код, который я написал, что работает. Поэтому я думаю, что вопрос изолирован от реализации drawRect:
от UITableViewCell
Мне все же хотелось бы получить ответ о том, как сделать индивидуальный чертеж на ячейке в iOS 7.
являются те линии в пределах ячейки? В iOS7 есть новое подзаголовок, в котором клипы ограничивают все, что вы добавляете в contentView. – Bms270
Они специально на краю, так что, возможно, они становятся обрезанными, как вы говорите. Тем не менее, я использую тот же метод в другой ячейке, где я рисую вертикальную линию в центре ячейки, которая не отображается в iOS 7. –
Просто попробуйте удалить скрытый механизм отсечения в iOS7 и посмотреть, что произойдет: [ячейка .contentView.superview setClipsToBounds: NO]; – Bms270