iOS UITableViewCell CornerRadius Константа - PullRequest
1 голос
/ 12 сентября 2011

Я расширяю 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]; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...