【发布时间】:2018-05-31 07:38:09
【问题描述】:
我有一个绿色矩形 (viewA) 和一个内部红色矩形 (viewB)。如果我尝试修改 viewA 的尺寸,viewB 不会自动更改。
我尝试:
- 检查 autoresizesSubviews 值(为真)
- 设置 autoresizingMask
- 更改边界而不是父视图的框架
所有这些解决方案都不起作用。
这是我的代码:
@IBOutlet weak var viewA: UIView!
@IBOutlet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func buttonAction(_ sender: Any) {
viewA.autoresizesSubviews = true
self.viewA.autoresizingMask = [.flexibleWidth, .flexibleHeight,.flexibleTopMargin, .flexibleLeftMargin, .flexibleRightMargin, .flexibleBottomMargin]
viewA.bounds = CGRect(x: 0, y: 0, width: 100, height: 100) // or frame instead of bounds
}
谢谢大家。
编辑:
我在情节提要中添加了两个视图。这里也可以看到viewB的约束。
【问题讨论】:
-
您需要更改视图B。边界也,否则显示代码你将如何将子视图添加到 viewA
-
显示 ViewA & viewB 的视图层次结构
-
不要使用自动调整大小的蒙版。只需将自动布局约束添加到界面构建器中的视图即可。那么你就不需要任何代码了。
-
确保按钮是viewA的子视图,然后你正在改变viewA的边界。按钮的边界取决于 viewA。
-
我在情节提要中添加了两个视图,并根据超级视图的边界设置了一些约束,但它不起作用。 (请参阅问题中的编辑)
标签: ios swift uiview autolayout