Градиент imageView iOS - PullRequest
       3

Градиент imageView iOS

4 голосов
/ 28 июня 2011

Я настраиваю свой UITableView, и я выяснил, как установить выбранный цвет каждой ячейки. В моем методе cellForRowAtIndexPath у меня есть следующий код:

    UIView *bgColorView = [[UIView alloc] init];
    [bgColorView setBackgroundColor:[UIColor orangeColor]];
    [cell setSelectedBackgroundView:bgColorView];
    [bgColorView release];

Но это сплошной апельсин. Я хочу, чтобы он выглядел более гладко, и чтобы он был слегка градиентным от светло-оранжевого до темно-оранжевого. Как я могу это сделать?

Ответы [ 5 ]

3 голосов
/ 28 июня 2011

Вы бы использовали Core Graphics (он же Quartz) для рисования градиента в методе -drawRect: вида:

CGContextRef ctx = UIGraphicsGetCurrentContext();
CGFloat colors[8] = {1.0, 0.75, 0.30, 0.5, 0.7, 0.2, 1.0, 0.8};
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB();
CGGradientRef gradient = CGGradientCreateWithColorComponents(space, colors, NULL, 2);
CGContextDrawLinearGradient(ctx, gradient, top, bottom, NULL);

Вы можете ограничить область, которую градиент заполняет, создав путь в текущемконтекст (ctx) и отсечение к нему, используя CGContextClip(ctx);.top и bottom - это CGPoints, которые определяют начало и конец градиента.

3 голосов
/ 28 июня 2011

Вам нужно переопределить метод drawRect представления, чтобы нарисовать градиент.Это может быть своего рода PIA, но вы также можете проверить этот компонент с открытым исходным кодом, который может работать:

http://cocoacontrols.com/platforms/ios/controls/gradient-view

1 голос
/ 28 июня 2011

@ Ответ Калеба правильный;Я делаю это для разных вещей.

Что никто не упомянул, так это то, что представление, для которого вам нужно реализовать drawRect:, является пользовательским UITableViewCell.

0 голосов
/ 28 июня 2011

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

0 голосов
/ 28 июня 2011

Простой поиск в Google найдет ваш ответ ....

http://bluesplat -tech.blogspot.com / 2009/03 / Gradient-Shading-uiview.html

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