繁体   English   中英

如何绘制超出UIView范围的阴影?

[英]How can I draw a shadow beyond a UIView's bounds?

我正在使用如何在UIView下绘制阴影中描述的方法 在视图内容后面绘制阴影。 尽管我在界面生成器中为视图禁用了“剪辑子视图”,但阴影仍被裁剪到视图的边界。 是否可以视图周围(不仅视图中)绘制阴影?

我不想在视图内部绘制阴影,因为该视图会收到阴影区域的触摸事件,而阴影区域实际上属于背景。

可以考虑在UIView的“核心动画”层上设置属性以绘制阴影,而不是在drawRect中手动绘制。

例如:

[descriptionInput setClipsToBounds:NO];
[descriptionInput.layer setShadowColor:[[UIColor blackColor] CGColor]];
[descriptionInput.layer setShadowOpacity:0.8];
[descriptionInput.layer setShadowOffset:CGSizeMake(0.0, 3.0)];

为此,您需要包括QuartzCore:

#import <QuartzCore/QuartzCore.h>

clipsToBounds仅控制视图子级的裁剪, 而不控制视图本身的绘制; 因此,这并不能解决您的问题。

如果您可以将阴影绘制到其他视图上并将其添加为子视图,则不会被剪切。 但是,我不知道您使用的方法(:(

不鼓励划定视野范围。 也许您可以直接在背景中包含阴影...

问候,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM