【发布时间】:2011-07-07 22:12:57
【问题描述】:
我正在尝试将 1px 黑色阴影添加到按钮标签,但没有成功。我试过这个:self.setTitleShadowOffset = CGSizeMake(0, -1); 但我得到了:
在非结构或联合的情况下请求成员“setTitleShadowOffset”
任何建议都会非常感谢!
【问题讨论】:
我正在尝试将 1px 黑色阴影添加到按钮标签,但没有成功。我试过这个: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);
【讨论】:
setShadowColor:forState:(使用此示例您不会注意到失败,因为它将阴影颜色设置为黑色,这是默认设置。)
setColor:forState: 方法。在这种特殊情况下,您只是没有注意到它,因为阴影的默认颜色是黑色。
其他答案没有正确设置阴影颜色(我怀疑他们没有注意到,因为他们试图将阴影颜色设置为默认的黑色。)
这段代码对我的按钮文本添加了一个白色阴影:
myButton.titleLabel.shadowOffset = CGSizeMake(0, 1);
[myButton setTitleShadowColor:[UIColor whiteColor] forState:UIControlStateNormal];
【讨论】:
myKey.titleLabel.shadowColor 确实不起作用!
UIButton 的 setTitleShadowOffset 已弃用。使用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 中使用 radius 属性为按钮标题添加阴影:
#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;
【讨论】: