2013-09-19 5 views
4

У меня есть подкласс 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.

+0

являются те линии в пределах ячейки? В iOS7 есть новое подзаголовок, в котором клипы ограничивают все, что вы добавляете в contentView. – Bms270

+0

Они специально на краю, так что, возможно, они становятся обрезанными, как вы говорите. Тем не менее, я использую тот же метод в другой ячейке, где я рисую вертикальную линию в центре ячейки, которая не отображается в iOS 7. –

+0

Просто попробуйте удалить скрытый механизм отсечения в iOS7 и посмотреть, что произойдет: [ячейка .contentView.superview setClipsToBounds: NO]; – Bms270

ответ

3

Попробуйте установить цвет фона свойство прозрачного цвета

self.backgroundColor = [UIColor clearColor] 
+0

Так странно. Это заставило рисунок появиться в камере. Можете ли вы объяснить, почему? – Houman

+0

Я думаю, пользовательский рисовать сделать изображение в фоновом режиме, но ячейка имеет представление содержимого, и если вы не установите четкий цвет, содержимое будет отображаться под вашим настраиваемым фоном. – Antaresm

+1

В iOS 7 фоновый вид по умолчанию белый. Раньше это было ясно. – MartinMoizard

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