iphone - 旋转后UIView图层阴影变暗

标签 iphone ios objective-c ipad uiviewcontroller

我有一个 UIView,用作标题,并且我已向该 View 应用了阴影。它按照我的预期出现在屏幕上,但旋转后,阴影变得两倍暗,就好像它已在自身之上重新绘制一样。随后的旋转使其变得更暗。这是标题和阴影的代码:

self.header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, HEADER_HEIGHT)];
self.header.backgroundColor = [UIColor whiteColor];
self.header.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleWidth;

// Drop shadow.
self.header.layer.shadowColor = [UIColor blackColor].CGColor;
self.header.layer.shadowOpacity = 0.5;
self.header.layer.shadowRadius = 2.0;
self.header.layer.shadowOffset = CGSizeMake(0, 2);
//        self.header.layer.shouldRasterize = YES;
//        self.header.layer.rasterizationScale = [UIScreen mainScreen].scale;

这段代码全部发生在我的 View Controller 的viewWillLayoutSubviews中,并在方法的开头调用[super willLayoutSubviews]。我尝试将相同的代码放入 viewWillAppear:animated 中,但没有效果。

最佳答案

在写下这个问题的同时,我找到了解决方案。 每次调用 viewWillLayout subview 时,我都会重新初始化标题。 除了效率低下之外,这还会因某种原因导致阴影覆盖自身。 我通过在 loadView 中初始化所有 View 并在 viewWillLayoutSubviews 中进行框架设置来修复此问题。这解决了问题,而且更好,因为我没有重新初始化已经存在的对象。

关于iphone - 旋转后UIView图层阴影变暗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15953262/

相关文章:

iphone - iOS解析: string is null

ios - 类似于 Whatsapp 的已读状态的双复选标记

iphone - 线程 1 : EXC_BAD_ACCESS ( code=2, 地址=0x0) { switch case 内}

iphone - 以编程方式创建音频数据

ios - 使用贝塞尔路径作为剪贴蒙版

ios - 在ios中保持view controller的第一个状态

iphone - 多任务处理 : Stop Background Audio at Specific Time

objective-c - iOS UI 覆盖库?

iphone - 如何动态调整UIScrollview的大小

iphone - NSDateFormater 日期从字符串 :