简体   繁体   English

以编程方式将阴影添加到UIButton标签

[英]Programmatically adding a shadow to a UIButton label

I'm trying to add a 1px black drop shadow to a button label with no luck. 我试图在没有运气的情况下为按钮标签添加1px黑色阴影。 I've tried this: self.setTitleShadowOffset = CGSizeMake(0, -1); 我试过这个: self.setTitleShadowOffset = CGSizeMake(0, -1); but I get: 但我得到:

Request for member 'setTitleShadowOffset' in something not a structure or union 在非结构或联合的东西中请求成员'setTitleShadowOffset'

Any suggestions would be fantastic thanks! 任何建议都会非常感谢!

The right property is self.titleLabel.shadowOffset: 正确的属性是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);

The other answers do not properly set the shadow color (I suspect they didn't notice because they were trying to set the shadow color to what it is by default, black.) 其他答案没有正确设置阴影颜色(我怀疑他们没有注意到,因为他们试图将阴影颜色设置为默认颜色,黑色。)

This code worked for me to add a white shadow to the text of my button: 这段代码为我添加了一个白色阴影到我的按钮文本:

myButton.titleLabel.shadowOffset = CGSizeMake(0, 1);
[myButton setTitleShadowColor:[UIColor whiteColor] forState:UIControlStateNormal];

The setTitleShadowOffset for UIButton is deprecated. 不推荐使用UIButtonsetTitleShadowOffset Use the shadowOffset of titleLabel property of UIButton 使用shadowOffset的titleLabel财产UIButton

buttonName.titleLabel.shadowOffset = CGSizeMake(0, -1);

In Swift 3.0 在Swift 3.0中

myButton.titleLabel?.layer.shadowRadius = 3
myButton.titleLabel?.layer.shadowColor = UIColor.black.cgColor
myButton.titleLabel?.layer.shadowOffset = CGSize(width: 0, height: 1)
myButton.titleLabel?.layer.shadowOpacity = 0.5
myButton.titleLabel?.layer.masksToBounds = false

在此输入图像描述

for Swift 3: 对于Swift 3:

  button.setTitleShadowColor(UIColor.red, for: .normal)
  button.titleLabel?.shadowOffset = CGSize(width: 2, height: 2)

Here is how to add shadow to the button title in Objective-C with radius property: 以下是如何使用radius属性在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;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM