作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一些代码,将图像应用于 UIViewController 的 View 。该代码应该与 iPhone 屏幕尺寸无关,因为 iPhone 4 和 5 之间的高度差异。
self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight;
self.view.clipsToBounds = YES;
UIGraphicsBeginImageContext(self.view.frame.size);
[[UIImage imageNamed:@"myimage.png"] drawInRect:self.view.bounds];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIView *imageView = [[UIView alloc] initWithFrame:CGRectMake(0,0, self.view.frame.size.width, self.view.frame.size.height)];
imageView.backgroundColor = [UIColor colorWithPatternImage:image];
[self.view addSubview: imageView];
image = nil;
imageView = nil;
我发现当我将这段代码添加到viewDidLoad方法中时,代码无法检测到不同的窗口大小。但是,当我将其放入 viewWillAppear 中时,代码可以在两种屏幕尺寸下正确工作。我不明白为什么。
有人知道为什么会发生这种情况吗?我想了解一下。
谢谢
最佳答案
发生这种情况是因为在加载 View 时,其内容不一定已布局且大小未知。使用自动布局系统时尤其如此。基本步骤是,
因此最合适的放置位置似乎是 viewDidLayoutSubviews。此时, View 及其 subview 已经布局完毕,并且尺寸也已确定。但是将其放入 viewWillAppear(或 viewDidAppear,就此而言)是可行的,尽管不太正确。
关于ios - UIViewController 方法 viewDidLoad/viewWillHappen - View 帧大小检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20314903/
我编写了一些代码,将图像应用于 UIViewController 的 View 。该代码应该与 iPhone 屏幕尺寸无关,因为 iPhone 4 和 5 之间的高度差异。 self.vi
我是一名优秀的程序员,十分优秀!