2013-11-22 5 views
0

У меня есть UITableViewCell, в котором я хотел бы нарисовать несколько строк (скажем, 2-х строк на 1/3-й сверху TableCell, покрывающих всю ширину). Строки всегда будут находиться в одном и том же месте в ячейке tableview.Линия чертежа в UITableViewCell (без использования drawRect)

Одно из простых решений заключается в том, чтобы просто использовать метод -drawRect, который будет использовать CGContextStrokePath, чтобы нарисовать линию. Но это похоже на переизбыток, поскольку он будет называть drawRect каждый раз, когда он неэффективен.

Я бы подумал, что есть способ, чтобы иметь возможность кэша так или иначе, чтобы все ячейки таблицы были созданы с линиями по умолчанию. Один из способов, который я могу представить, - создать файл 2pt * 2pt png и добавить его в UIImageView поверх ячейки tableview. Любые другие способы?

ответ

0

Вы можете добавить UIView как подвид вашего UITableViewCell.

1

Другой вариант - добавить UIView и установить его цвет фона. Например:

UIView *lineView = [[[UIView alloc] initWithFrame:CGRectMake(0,0,cell.contentView.bounds.size.width, 2)] autorelease]; 
lineView.backgroundColor = [UIColor grayColor]; 

[cell.contentView addSubview:lineView]; 
+2

OFC вы также можете сделать это в раскадровке, так все ячейки имеют его (и многоразовые ячейки должны иметь лучшую производительность, чем добавление его в код для каждой ячейки вручную) – Marc

2

Попробуйте -

Добавьте этот код в cellForRowAtIndexPath, просто настроить у позиции ог этого изображения view-

UIImageView *seperatedImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 49, 320, 1)]; 
seperatedImageView.backgroundColor = [UIColor colorWithRed:201.0/255.0 green:250.0/255.0 blue:152.0/255.0 alpha:1.0]; 
[cellBackView addSubview:seperatedImageView]; 
Смежные вопросы