0

我有以下代码来创建渐变按钮:

CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = btnSignUp.layer.bounds;

gradientLayer.colors = [NSArray arrayWithObjects:
                        (id)[UIColor colorWithWhite:1.0f alpha:0.1f].CGColor,
                        (id)[UIColor colorWithWhite:0.4f alpha:0.5f].CGColor,
                        nil];

gradientLayer.cornerRadius = btnSignUp.layer.cornerRadius;

[btnSignUp.layer addSublayer:gradientLayer];

然而,底部的圆角也被涂上了。我不明白为什么会这样。有任何想法吗?

这是图片:http: //imageshack.us/a/img546/509/btnw.png

4

2 回答 2

0

我想你想要的是_button.layer.masksToBounds = YES;

于 2013-03-15T14:57:58.990 回答
0

如果您的目标是 iOS 5.0 或更高版本,您可能需要创建渐变的 PNG 文件并拉伸它以填充按钮的背景,而不是弄乱图层。我相信使用 PNG 对性能的影响会更好。

所以像:

static UIEdgeInsets insets = {15, 15, 15, 15};  (or whatever your insets are)
UIImage* image = [[UIImage imageNamed:@"myImage"] resizableImageWithCapInsets:insets];
[_button setBackgroundImage:image forState:UIControlStateNormal];
于 2012-10-12T21:28:38.253 回答