Как я могу сделать так, чтобы ячейки в моем UITableViewController имели градиент? - PullRequest
0 голосов
/ 30 июля 2011

Я пытаюсь выяснить, как сделать так, чтобы ячейки в моем классе UITableViewController имели градиент, подобный приведенному в этом вопросе (http://stackoverflow.com/questions/6880416/quick-question-with-uitableviewcell-shadow). Я видел несколько вещей, говорящих об использовании фонового изображения, но я бы предпочел сделать это с помощью кода. У меня проблемы с поиском, как это сделать, и признателен за любую помощь.

1 Ответ

1 голос
/ 30 июля 2011

Некоторое время назад Мэтт Галлахер сделал хорошее пошаговое руководство: Добавление эффектов тени в 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, а не в контроллере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...