iOS从视图中添加/删除阴影

我不明白如何删除添加到视图中的阴影。 我在initWithFrame添加了一个这样的阴影:

 self.layer.borderWidth = 2; self.layer.borderColor = [UIColor clearColor].CGColor; self.backgroundColor = [UIColor greenColor]; [self.layer setCornerRadius:8.0f]; CALayer *layer = self.layer; layer.shadowOffset = CGSizeMake(2, 2); layer.shadowColor = [[UIColor blackColor] CGColor]; layer.cornerRadius = 8.0f; layer.shadowRadius = 3.0f; layer.shadowOpacity = 0.80f; layer.shadowPath = [[UIBezierPath bezierPathWithRect:layer.bounds] CGPath]; 

在执行应用程序后,我想从这个视图中删除阴影。 我试过使用:

 layer.hidden = YES; 

要么

 self.layer.hidden = YES; 

但是这完全隐藏了视图,而不仅仅是添加的阴影。

有没有办法从视图中检索添加的阴影,然后隐藏它? 谢谢!

我想你可以使用CALayershadowOpacity属性。

所以这应该工作:

 self.layer.shadowOpacity = 0.0; 

请参阅CALayershadowOpacity文档页面

并显示你的影子使用:

 self.layer.shadowOpacity = 1.0; 

对不起,不知道正确的方法,但你有没有尝试改变layer shadow的属性? 例如,其中之一;

  layer.shadowOffset = CGSizeMake(0, 0); layer.shadowColor = [[UIColor clearColor] CGColor]; layer.cornerRadius = 0.0f; layer.shadowRadius = 0.0f; layer.shadowOpacity = 0.00f; 

你试图隐藏的“图层”是对象的图层,你有一个阴影,它不是一个可见的方面..只有图层中的对象…这是相当混乱的概念化反正,唯一的删除阴影的方法是撤消原来的操作,这是上面提到的,没有定义的属性,你可以切换一个布尔,使阴影消失