Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 以编程方式向UIButton标签添加阴影_Ios_Uibutton_Ios 4.2 - Fatal编程技术网

Ios 以编程方式向UIButton标签添加阴影

Ios 以编程方式向UIButton标签添加阴影,ios,uibutton,ios-4.2,Ios,Uibutton,Ios 4.2,我试图在按钮标签上添加1像素的黑色阴影,但运气不好。我试过这样做:self.setTitleShadowOffset=CGSizeMake(0,-1)但我得到: 在非结构或联合中请求成员“setTitleShadowOffset” 任何建议都会很棒,谢谢 不推荐使用ui按钮的setTitleShadowOffset。使用ui按钮的标题标签属性的shadowOffset buttonName.titleLabel.shadowOffset=CGSizeMake(0,-1)右侧属性为self.tit

我试图在按钮标签上添加1像素的黑色阴影,但运气不好。我试过这样做:
self.setTitleShadowOffset=CGSizeMake(0,-1)但我得到:

在非结构或联合中请求成员“setTitleShadowOffset”


任何建议都会很棒,谢谢

不推荐使用
ui按钮的
setTitleShadowOffset
。使用
ui按钮的标题标签属性的
shadowOffset


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

右侧属性为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];
在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
对于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;
#导入
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=否;

设置
myKey.titleLabel.shadowColor
确实不起作用!你不能用属性来设置它-你需要用full方法来设置它,因为否则你会放弃state(意思是当状态改变时,它会失去你设置的颜色)。我提供的代码片段应该可以工作。这是目前为止最好的解决方案,我只是想指出,正确的方法是使用CGSizeMake而不是CGSizeKind of滑稽-在我发布这篇文章3年后,在提出这个问题近5年后,它最终被标记为正确答案。阴影颜色线并没有像你想象的那样工作。您需要使用
setShadowColor:forState:
(使用此示例您不会注意到失败,因为它将阴影颜色设置为黑色,这是默认设置。)谢谢@ArtOfWarfare。我没有在iOS 6中尝试过这一点,行为可能已经改变。我会测试并更新代码。@Felz,它从来没有像你想象的那样运行过。阴影颜色一直都很庄重,就像整个iOS中的其他颜色属性一样,这意味着它们在状态改变时(即,因为它们被点击或高亮显示)会立即重置为默认颜色,除非您使用它们的
setColor:forState:
方法。在这种特殊情况下,您没有注意到它,因为阴影的默认颜色是黑色。这不会在实际文本上设置阴影。我一定搞错了。对不起!