我正在使用How do I draw a shadow under a UIView?中描述的方法在视图内容后面绘制阴影。虽然我在Interface Builder中为视图禁用了“剪辑子视图”,但阴影被剪切到视图的边界。是否可以在视图周围绘制阴影,而不仅仅是在视图中?
我不想在视图中绘制阴影,因为视图会接收阴影区域的触摸事件,它实际上属于背景。
答案 0 :(得分:6)
不要在drawRect中手动绘图,而应考虑在UIView的核心动画层上设置属性以绘制阴影。
例如:
[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>
答案 1 :(得分:2)
clipsToBounds仅控制视图子项的裁剪,而不是绘制该视图本身;因此它无法解决你的问题。
如果您可以将阴影绘制到不同的视图上并将其添加为子视图,则不会剪切它。但是,我不知道你使用的方法有多可能:(
答案 2 :(得分:0)
不鼓励绘制外部视图边界。也许你可以直接在你的背景中包含阴影......
此致