2012-03-04 4 views
0

У меня есть следующий код:добавления тени к нижней части UINavigationBar только

self.navigationBar_.layer.shadowColor = [UIColor blackColor].CGColor; 
      self.navigationBar_.layer.shadowOpacity = 0.3f; 
      self.navigationBar_.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); 
      self.navigationBar_.layer.shadowRadius = 3.0f; 
      self.navigationBar_.layer.masksToBounds = NO; 

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

ответ

4

Вместо тени слоя вы можете просто использовать градиент. Вы можете просто использовать прозрачный градиент PNG, но вот пример того, как это сделать программно:

UIView *topShadowView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.navigationBar.bounds.size.width, 10)]; 
CAGradientLayer *topShadow = [CAGradientLayer layer]; 
topShadow.frame = CGRectMake(0, 0, self.navigationBar.bounds.size.width, 10); 
topShadow.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithWhite:0.0 alpha:0.25f] CGColor], (id)[[UIColor clearColor] CGColor], nil]; 
[topShadowView.layer insertSublayer:topShadow atIndex:0]; 
[self.view addSubview:topShadowView]; 
Смежные вопросы