0

我正在努力实现一些微不足道的事情。我想对我的 UIButton 应用阴影;没有阴影半径。这似乎对我不起作用。一旦我将阴影半径设置为 0,阴影就会完全消失,而将其设置为任何其他值都会正常绘制阴影。

这是我的代码:

 btn = [UIButton buttonWithType:UIButtonTypeCustom];
        btn.frame = CGRectMake(10, someView.frame.size.height-150, someView.frame.size.width-20, 60);
 btn.backgroundColor = UIColorFromRGB(kOrangeColor, 1.0f);
 btn.layer.cornerRadius = kCornerRadius;
 btn.titleLabel.font = kEdmondsansBold(24.0f);
 [btn addTarget:self action:@selector(doSomethingFancy) forControlEvents:UIControlEventTouchUpInside];
 btn.layer.shadowOffset = CGSizeMake(0, 2);
 btn.layer.shadowColor = UIColorFromRGB(0xff2400, 1.0f).CGColor;
 btn.layer.shadowOpacity = 1.0f;
 btn.layer.shadowRadius=  0.0f;
 [btn setTitleColor:UIColorFromRGB(0xffffff, 1.0f) forState:UIControlStateNormal];
 [btn setTitle:@"Fancy fancy" forState:UIControlStateNormal];
 [someView addSubview:btn];
4

1 回答 1

1

radius正如您所期望的那样,何时设置为 0。
影子'消失'。

但它没有,它只是隐藏在按钮后面。

要获得实心阴影,您还必须像这样设置偏移量:

button.layer.shadowOffset = CGSizeMake(xOffset, yOffset);

如果您正在考虑在所有边缘上添加阴影,那么您应该考虑使用边界而不是阴影:

button.layer.borderColor = [UIColor blackColor].CGColor;
button.layer.borderWidth = 3.f;
于 2013-09-22T13:18:19.047 回答