UiView Gradient定位错误

时间:2015-02-21 09:44:27

标签: ios uiview calayer

II在我的viewController中有一个UIView。当我为视图设置背景颜色时,所有内容都显示在正确的位置。但我正在尝试使用

为UIView的背景添加渐变
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.gradientView.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor whiteColor] CGColor], color.CGColor, nil];
[self.gradientView.layer insertSublayer:gradient atIndex:0];

渐变显示很好但不是UIView的边界(它从页面下方开始比UIView更低)。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在gradient.colors数组中,第一个对象始终设置为TopColor,第二个对象作为底色。可能是你的背景颜色是白色,所以这就是为什么它不是你想要的显示。请查看以下代码:

CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = profileSection.bounds;
UIColor *colorTop = [UIColor greenColor];
UIColor *colorBot = [UIColor redColor];
gradient.colors = [NSArray arrayWithObjects:(id)[colorTop CGColor], (id)[colorBot CGColor], nil];
gradient.masksToBounds = YES;
gradient.cornerRadius = 5;
[[profileSection layer] insertSublayer:gradient atIndex:0];
profileSection.layer.contentsGravity = kCAGravityResizeAspect;

答案 1 :(得分:0)

试试这个...

CAGradientLayer *gradient = [CAGradientLayer layer];
    gradient.startPoint=CGPointMake(1, 0);
    gradient.frame = self.viewForSelectingLanguage.bounds;
    gradient.colors = [NSArray arrayWithObjects: (id)[[UIColor colorWithRed:0.0 green:0.77f blue:0.635f alpha:1] CGColor],(id)[[UIColor colorWithRed:0 green:0 blue:0.8f alpha:1] CGColor], nil];
    [self.viewForSelectingLanguage.layer insertSublayer:gradient atIndex:0];

在这段代码中我提到了起点。你可以提一下起点。