2012-07-25 77 views
5

我见过很多片段:对于像阴影这样简单的事情来说太复杂,需要继承UIView并使用quartz2d调用,或者我无法让它们到达工作。UIView最简单的(矩形)阴影

我只是想在视图上做这个我作为子视图添加到另一个视图(子视图取自另一个viewController我只是分配 - 我知道这可能不是很好,但哦),没有IB或任何东西。最简单/最被接受的方式是什么?如果我希望它能在iOS 4上运行,它会不一样吗?

回答

10

这是作为进口<QuartzCore/QuartzCore.h>和使用如下类似的片段一样容易:

self.viewAboutContainer.layer.shadowColor = [[UIColor blackColor] CGColor]; 
self.viewAboutContainer.layer.shadowOpacity = 0.7; 
self.viewAboutContainer.layer.shadowRadius = 4.0; 
self.viewAboutContainer.layer.shadowOffset = CGSizeMake(5.0f, 5.0f);  
self.viewAboutContainer.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.viewAboutContainer.bounds].CGPath; 
+2

还要确保self.viewAboutContainer.clipsToBounds = NO。否则,阴影会落在视图之外并被裁剪。 – 2013-02-08 18:18:32

+0

@Brayden我用“[myview.layer setShadowPath:[UIBezierPath bezierPathWithRect:myview.bounds] .CGPath];”解决了性能问题。阴影和角落radious在人像模式下工作正常,平滑滚动。但我的应用程序在这两种模式下都支持,当我改变方向阴影不能正常工作(根据纵向视图的阴影显示).so任何想法如何解决这个问题? – Hitarth 2013-02-16 07:04:35

+1

@VictorEngel viewAboutContainer是_any_ UIView或任何继承UIView(即UIImageView)的名称。该名称只是一个占位符。 – Brayden 2013-05-15 15:31:23