2012-07-17 101 views
0

我正在寻找一个自定义UIView子类,它有一个“洞”,通过它可以看到它下面的视图。我已经使用一些Core Graphics绘图和裁剪来完成这个任务。好玩的东西。防止看到UIView阴影

我也喜欢这个视图,叫做WheelDetailView,有一个阴影。很简单。我已经做到了这一点的东西,如:

[[self layer] setShadowColor:[[UIColor blackColor] CGColor]]; 
[[self layer] setShadowRadius:4.0]; 
[[self layer] setShadowOpacity:1.0]; 
[[self layer] setShadowOffset:CGSizeMake(0, 2)]; 

的问题是,这种设置给了我,我已经在我的视图中创建的“洞”内阴影。虽然我意识到这是非常有意义的,因为你会希望在现实生活中看到阴影,所以我宁愿只在我的视野周围出现阴影。

这里是它的现在出现:

Hole with auto-shadow

我轮匿名的有意模糊的一部分;你可以忽略这一点。

正如您所看到的那样,阴影既存在于视图之外,也存在于其中。有谁知道一个很好的方法来消除这种影响?

回答

0

将WheelView放在视图上方有意义吗?

或者你可以删除该视图的影子,并使用一个单独的视图与阴影,然后将它所有的意见

或者阴影的图像背后,并把它所有的观点背后

+0

我喜欢你在做什么思考,但不幸的是,我不能那样做。轮子本身就是一个'UIImageView',理论上它可以放在我的'WheelDetailView'之上,但这会导致一些问题。例如,向框架底部延伸的蓝色光束必须保持在轮子上方,但在“WheelDetailView”下方。此外,'WheelDetailView'可以从屏幕外进行动画处理,如果它在轮子下方动画,看起来不太合适。 – ravron 2012-07-18 00:03:17

+0

所以我会为影子使用图片并将其放在所有视图的后面。或者甚至为整个WheelDetailsView创建一个包含洞和阴影的图像。尝试使用photoshop或任何其他图形工具,它不应该是困难的,从我的经验来看,它会更好(性能方面),然后用核心图形绘制所有图形。 – Eyal 2012-07-18 00:11:33

+0

您的解决方案*可以*工作,所以我会给您支票。不过,我希望有人提出一个CG解决方案。也许他们仍然会。感谢您的输入! – ravron 2012-07-18 14:15:21