Некоторое время назад Мэтт Галлахер сделал хорошее пошаговое руководство: Добавление эффектов тени в UITableView с помощью CAGradientLayer .
Он использует пользовательский подкласс UIView, который рисует CAGradientLayer в качестве фонового представления ячейки. Код для настройки представления тривиален -
В подклассе GradientView UIView:
CAGradientLayer *gradientLayer = (CAGradientLayer *)self.layer;
gradientLayer.colors = [NSArray arrayWithObjects:
(id)[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0].CGColor,
(id)[UIColor colorWithRed:0.85 green:0.85 blue:0.85 alpha:1.0].CGColor, nil];
self.backgroundColor = [UIColor clearColor];
В контроллере UITableViewController cellForRowAtIndexPath:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [{ Set up your cell}];
cell.backgroundView = [[[GradientView alloc] init] autorelease];
}
Естественно, есть несколько сложностей, но на сайте Мэтта есть хороший, простой пример приложения.
Просто гнида: клетки в UITableView
, а не в контроллере.