Я расширяю UITableView и переопределяю setBackgroundView, чтобы добавить градиент в ячейку в виде таблицы сгруппированных стилей.Пока все хорошо ...
Для того, чтобы применить закругленные углы к ячейке, я установил для углаRadius значение 10, которое выглядит примерно так.
Все работает хорошо, но мне не нравится идея жесткого кодирования cornerRadius.Это константа где-то в базе кода Какао?
Пример:
- (void) setBackgroundView:(UIView *)backgroundView{
NSLog(@"called setBackground");
NSLog(@"%f", backgroundView.layer.shadowRadius); //yields 0.00000
NSLog(@"%f", backgroundView.layer.cornerRadius); //yields 3.00000
CAGradientLayer *gradient = [CAGradientLayer layer];
[gradient setCornerRadius:10];
[gradient setMasksToBounds:YES];
[gradient setBorderWidth:0.8f];
[gradient setBorderColor:[[UIColor darkGrayColor] CGColor]];
gradient.frame = backgroundView.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor greenColor] CGColor], (id) [[UIColor colorWithRed:.05 green:.65 blue:.05 alpha:1] CGColor],(id)[[UIColor colorWithRed:.05 green:.65 blue:.05 alpha:1] CGColor], (id)[[UIColor colorWithRed:.05 green:.45 blue:.05 alpha:1] CGColor], nil];
gradient.locations = [NSArray arrayWithObjects: (id)[NSNumber numberWithFloat:0.10], (id)[NSNumber numberWithFloat:0.50], (id)[NSNumber numberWithFloat:0.50], (id)[NSNumber numberWithFloat:1.0], nil];
[backgroundView.layer insertSublayer:gradient atIndex:0];
[super setBackgroundView:backgroundView]; }