如何在iPhone上去除阴影

8
我正在使用程序化的标准方式来制作按钮阴影,但是当我完成按钮后,我希望阴影不再存在。我可以将不透明度设置为0,但是阴影是否仍然存在?如果存在,是否仍会影响系统性能?谢谢。
这会导致错误。
tempButton.superview.layer.shadowOffset = nil;
    tempButton.superview.layer.shadowRadius = nil;
    tempButton.superview.layer.shadowOpacity = nil;

可能是重复的问题:iOS如何给视图添加/移除阴影 - Fattie
2个回答

27

我通常这样做以保险起见。

  [[tempButton layer] setShadowOpacity:0.0];
  [[tempButton layer] setShadowRadius:0.0];
  [[tempButton layer] setShadowColor:nil];

Quartz高度优化,如果不必要,它不会浪费任何时间进行渲染。


+1 但我想知道 [[tempButton layer] setShadowColor:nil]; 是否真的安全。文档说默认颜色是不透明黑色,但没有说明如何处理 nil(依赖未经文件记录的行为永远不安全)。就个人而言,我会跳过这一步。 - Clafou
nil 似乎可以正常工作,但如果你想保险起见,使用 [UIColor clearColor].CGColor。这也能正常工作并且更加安全。 - Joel

1

我会直接移除这个按钮,并且用一个一模一样但没有阴影的按钮来替换它。或者保留两个按钮,并隐藏/显示其中一个。有时候,创建一个新的用户界面对象比操作现有的对象更容易。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接