根据UIView上有关contentMode
属性的官方文档:
The content mode specifies how the cached bitmap of the view’s layer is adjusted when the view’s bounds change
在此定义中定义了什么内容?例如,它是 subview 还是当我们为 View 定义背景色时。
我的第一个猜测是,它至少应应用于 View 中的 subview ,但是例如,下面的代码片段在使用
UIViewContentModeCenter
标记时不会给我预期的结果: UIView* redView = [[UIView alloc] initWithFrame:CGRectMake(80, 80, 150, 200)];
redView.contentMode = UIViewContentModeCenter;
redView.backgroundColor = [UIColor redColor];
UIView* greenView = [[UIView alloc] initWithFrame:redView.bounds];
greenView.backgroundColor = [UIColor greenColor];
[redView addSubview:greenView];
redView.frame = CGRectInset(redView.frame, -5, -5);
[self.view addSubview:redView];
我刚刚设置了将包含greenView的redView。我也将redview的内容模式设置为
UIViewContentModeCenter
-为什么当我更改其父框架时,在我编写的代码中greenview没有居中?是不是UIViewContentModeCenter
应该做什么?感谢您的澄清!
PS:您可以在一个简单的 View Controller 模板项目的
loadView
中轻松测试以上代码。 最佳答案
从jrturton的答案到:https://stackoverflow.com/a/14111480/1374512