4

我正在考虑在 UIView 的底部和右侧添加阴影,但我发现所有的解决方案都是为视图的四个侧面添加阴影。有没有办法解决这个问题?

4

3 回答 3

20

你可以CAGradientLayer这样使用,

CAGradientLayer *shadow = [CAGradientLayer layer];
shadow.frame = CGRectMake(-10, 0, 10, myView.frame.size.height);
shadow.startPoint = CGPointMake(1.0, 0.5);
shadow.endPoint = CGPointMake(0, 0.5);
shadow.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithWhite:0.0 alpha:0.4f] CGColor], (id)[[UIColor clearColor] CGColor], nil];
[myView.layer addSublayer:shadow];

您必须更改frame以适合您的需要。此示例沿左侧视图的高度显示阴影。您还可以更改起点和终点以控制阴影的方向。

于 2012-04-15T23:05:17.250 回答
1

我可以通过在视图的底部和右侧添加两个带有拉伸阴影图像的 UIImageView 来做到这一点。您不必使用这些 UIImageView 覆盖所有视图,您只需根据需要进行剪辑。看看 iPhone 上 twitter 的颜色混合图层,我相信那些美丽的阴影是使用 UIImageViews 创造的。这可以节省系统资源。当然你可以使用 CALayer 来创建阴影,但是我认为渲染阴影会消耗更多的系统资源,所以 CALayer 是我的第二选择。

于 2012-04-16T02:04:54.207 回答
0
UIBezierPath *shadowPath = [UIBezierPath 
bezierPathWithRect:self.yourViewObj.bounds];
self.yourViewObj.layer.masksToBounds = NO;
self.yourViewObj.layer.shadowColor = [UIColor blackColor].CGColor;//*** color you want for shadow
self.yourViewObj.layer.shadowOffset = CGSizeMake(5.0f, 5.0f);
self.yourViewObj.layer.shadowOpacity = 0.7f;
self.yourViewObj.layer.shadowPath = shadowPath.CGPath;
于 2017-03-28T10:33:01.750 回答