【问题标题】:UIButton weird shadow behaviourUIButton 奇怪的阴影行为
【发布时间】:2013-09-22 13:00:22
【问题描述】:

我正在努力实现一些微不足道的事情。我想对我的 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];

【问题讨论】:

  • 无阴影半径 --> 无阴影。如果它在半径下正常工作,为什么不使用它?
  • @giorashc 半径不应该模糊/羽化边缘吗?我想要一个坚实的阴影......我怎么能达到这样的效果?
  • 您始终可以在按钮后面添加一个稍微 (x,y) 偏移的图像(与按钮大小相同)
  • @giorashc 是的,我想我得想办法了。
  • @giorashc 我问题中的代码实际上可以按我最初想要的方式工作。颜色太相似了,所以我没有看到阴影。

标签: ios objective-c uibutton ios7


【解决方案1】:

当radius 设置为 0 时,如您所料。
阴影“消失”。

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

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

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

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

button.layer.borderColor = [UIColor blackColor].CGColor;
button.layer.borderWidth = 3.f;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-19
    • 2016-04-19
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    相关资源
    最近更新 更多