【问题标题】:Prevent UIView shadow under view防止 UIView 阴影在视图下
【发布时间】:2012-07-17 23:37:33
【问题描述】:

我正在寻找一个自定义的UIView 子类,其中有一个“洞”,通过它可以看到下面的视图。我已经使用一些 Core Graphics 绘图和剪辑完成了这项工作。好玩的东西。

我还希望这个名为WheelDetailView 的视图有一个投影。很容易。我已经通过以下方式实现了这一点:

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

问题是,这个设置在我的视图中创建的“洞”内给了我一个阴影。虽然我意识到这是完全有道理的,因为您希望在现实生活中看到阴影,我宁愿只让阴影出现在我的视野周围。

现在是这样的:

为了匿名,我故意模糊了方向盘的一部分;你可以忽略它。

如您所见,阴影存在于视图之外和视图之内。有谁知道消除这种影响的好方法吗?

【问题讨论】:

    标签: iphone objective-c ios core-graphics shadow


    【解决方案1】:

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

    或者您可以移除视图的阴影并使用带有阴影的单独视图,然后将其放在所有视图的后面

    或阴影图像并将其放在所有视图的后面

    【讨论】:

    • 我喜欢你的想法,但不幸的是,我做不到。轮子本身是一个UIImageView,理论上可以放在我的WheelDetailView 上方,但这会导致一些问题。例如,向框架底部延伸的蓝色光束必须保持在车轮上方,但在WheelDetailView 下方。此外,WheelDetailView 会在屏幕外进行动画处理,如果它在“轮子下方”进行动画处理,则看起来不正确。
    • 所以我会使用图像作为阴影并将其放在所有视图的后面。或者甚至为整个 WheelDetailsView 创建一个图像,包括你喜欢的洞和阴影。尝试使用 Photoshop 或任何其他图形工具来完成它,这应该不难,根据我的经验,它会比使用核心图形绘制所有内容要好得多(在性能方面)。
    • 您的解决方案确实有效,所以我会给您检查。不过,我希望有人能想出一个 CG 解决方案。也许他们仍然会。感谢您的意见!
    • 老话题,但据我所知,我没有办法防止阴影进入投影它的视图下方
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 2015-09-19
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多