gpt4 book ai didi

iphone - 将图层阴影裁剪为宽度而不是高度?

转载 作者:行者123 更新时间:2023-11-29 04:38:45 25 4
gpt4 key购买 nike

我正在向 View 层添加阴影,如下所示:

    self.view.layer.shadowOffset = CGSizeZero;
self.view.layer.shadowOpacity = 0.10f;
self.view.layer.shadowRadius = 5.0f;
self.view.layer.shadowColor = [UIColor blackColor].CGColor;
self.view.layer.shadowPath = [UIBezierPath bezierPathWithRect:
CGRectMake(self.view.bounds.origin.x, self.view.bounds.origin.y, self.view.bounds.size.width - 5.0, self.view.bounds.size.height)].CGPath;
self.view.clipsToBounds = NO;

我想要做的是以某种方式剪切阴影,使其不会超出宽度,但会超出高度。基本上,我只想要一个 90 度的阴影,而不是我周围的阴影。我尝试从 bezierRect 宽度中减去 ShadowRadius 量,但这会稍微扰乱底部的阴影流。

有什么想法可以实现这一点吗?

最佳答案

您可以添加新的“容器” View 并将您的 View (内容 View )添加为 subview 。容器 View 应高于您的 View ,但宽度相同。如果将容器 View 设置为剪切到其边界,它将剪切侧面的阴影,但允许底部和顶部的阴影。

 _________  
| _______ | <-- container
|| ||
|| || <-- your view (inside container)
||_______||
|`````````| <-- shadow of your view (inside container)
|_________|
<小时/>

在代码中,这看起来像

// contentView is already created and configured...
UIView *containerView = [[UIView alloc] initWithFrame:
CGRectInset([contentView frame],
0, // keep the same width
-radius)]; // increase the height
[[self view] addSubview:containerView];
[contentView setCenter:CGPointMake(CGRectGetMidX([contentView bounds]),
CGRectGetMidY([contentView bounds]));
[containerView addSubview:contentView];
[containerView setClipsToBounds:YES];

关于iphone - 将图层阴影裁剪为宽度而不是高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10696042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com