我试图给一个按钮标签添加1像素的黑色阴影,但一直没有成功。我尝试了这个代码:self.setTitleShadowOffset = CGSizeMake(0, -1);
,但是我得到了以下错误信息:
请求访问非结构体或联合体的成员“setTitleShadowOffset”
有什么好的建议吗?谢谢!
正确的属性是self.titleLabel.shadowOffset:
UIButton *b = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[b setTitleShadowColor:[UIColor purpleColor] forState:UIControlStateNormal];
b.titleLabel.shadowOffset = CGSizeMake(1.0, 1.0);
[b setTitle:@"Hello, I'm a Button" forState:UIControlStateNormal];
b.frame = CGRectMake(10.0, 10.0,300.0, 40.0);
其他答案没有正确设置阴影颜色(我怀疑他们没有注意到,因为他们试图将阴影颜色设置为默认的黑色)。
这段代码对我有用,可以将我的按钮文本添加一个白色阴影:
myButton.titleLabel.shadowOffset = CGSizeMake(0, 1);
[myButton setTitleShadowColor:[UIColor whiteColor] forState:UIControlStateNormal];
myKey.titleLabel.shadowColor
实际上并没有起作用! - BeriksetTitleShadowOffset
方法对于 UIButton
已经被弃用。使用 UIButton
的 titleLabel
属性中的 shadowOffset
替代。
buttonName.titleLabel.shadowOffset = CGSizeMake(0, -1);
对于Swift 3:
button.setTitleShadowColor(UIColor.red, for: .normal)
button.titleLabel?.shadowOffset = CGSize(width: 2, height: 2)
以下是如何在Objective-C中为按钮标题添加阴影的代码,其中包括半径属性:
#import <QuartzCore/QuartzCore.h>
button.titleLabel.layer.shadowOffset = CGSizeMake(2.0, 2.0);
button.titleLabel.layer.shadowColor = [UIColor colorWithWhite:0.1 alpha:0.7].CGColor;
button.titleLabel.layer.shadowRadius = 2.0;
button.titleLabel.layer.shadowOpacity = 1.0;
button.titleLabel.layer.masksToBounds = NO;
shadowColor
这行代码并不能像你想的那样生效,你需要使用setShadowColor:forState:
方法(使用这个示例你可能不会注意到失败,因为它将阴影颜色设置为默认的黑色)。 - ArtOfWarfaresetColor:forState:
方法。您之所以在这种特定情况下没有注意到它,是因为阴影的默认颜色是黑色。 - ArtOfWarfare