gpt4 book ai didi

ios - 自动布局和阴影

转载 作者:可可西里 更新时间:2023-11-01 03:06:26 28 4
gpt4 key购买 nike

我在使用 Autolayout 在 iOS 6 应用程序中创建的 UIView 添加阴影时遇到问题。

假设我有一个在 UIView 底部添加阴影的方法(这实际上是 UIView 的一个类别,所以它是可重用的):

- (void) addShadowOnBottom {
self.layer.shadowOffset = CGSizeMake(0, 2);
self.layer.shadowOpacity = 0.7;
self.layer.shadowColor = [[UIColor blackColor] CGColor];
self.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.bounds].CGPath;
}

当我在某些 UIViewController 的 viewDidLoad 中调用此方法时,未添加阴影,这可能是由于必须计算的所有限制。

当我在viewWillAppear中调用此方法时,情况相同。

当我在 viewDidAppear 中调用此方法时,它起作用了,但是当新 View 出现时,有一小段时间没有阴影,它会在一段时间后出现。

如果我放弃设置 shadowPath 并删除行 self.layer.shadowPath 一切正常,但 View 转换不平滑。

所以我的问题是在启用了自动布局的 iOS 6 中添加阴影以查看的正确方法是什么?

最佳答案

在使用 AutoLayout 时,您可以添加到图层的另一件事是,您需要在框架未知的 UIView 上添加阴影:

self.layer.rasterizationScale = [[UIScreen mainScreen] scale]; // to define retina or not
self.layer.shouldRasterize = YES;

然后删除 shadowPath 属性,因为自动布局约束尚未处理,所以它是无关紧要的。同样在执行时,您将不知道 View 的边界或框架。

这大大提高了性能!

关于ios - 自动布局和阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14528497/

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