Настройка UITableViewSectionHeader - изображение против чертежа - PullRequest
0 голосов
/ 23 января 2012

Мне нужно создать свой собственный вид заголовка раздела для UITableView, с рамкой сверху, снизу и цветом фона.

Мой вопрос: каков наилучший (или самый правильный) способ сделать это?

  • Используете изображение?
  • Или рисование границ и цвета фона с помощью Quartz 2D?
  • Есть ли различия в производительности?

Спасибо!(простите за мой английский)

Ответы [ 2 ]

1 голос
/ 23 января 2012

Самый простой способ сделать это - использовать CALayers.Дайте вашему виду желаемый цвет фона и добавьте два слоя, которые будут действовать как ваши границы.Предполагая, что вы хотите использовать границы в один пиксель, пример (черные границы, белый фон) будет выглядеть так:

UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 24)];
headerView.backgroundCoor = [UIColor whiteColor];

CALayer *topLine = [CALayer layer];
topLine.frame = CGRectMake(0, 0, 320, 1);
topLine.backgroundColor = [UIColor blackColor].CGColor;
[headerView.layer addSublayer:topLine];

// repeat for bottom line

Другим способом будет использование свойств borderColor / borderWidth на слое вида, но затем вам нужно выполнить некоторыетрюки (маскирование или изменение размеров вида слишком широко), чтобы скрыть боковые границы.

Слои довольно мощные, вы можете легко добавлять градиенты, формы и маски, не мешая рисовать компьютерной графикой.

0 голосов
/ 23 января 2012

Если все, что вам нужно, это границы и цвет фона, то рисование их определенно будет подходящим вариантом. Производительность будет лучше, если вы рисуете их в сравнении с изображением. * * * * * * * * * * * * * * * * * * * * * * * * * UIImages оптимизированы для iPhone, но пользовательский рисунок будет иметь лучшую производительность.

...