当它有一些约束时更改 uiview 框架
change the uiview frame when it has some constraints
主视图上有一个子视图(UIView),我想改变子视图(_test)的大小。
_test
有两个约束:
- 顶space到主视图:20
- 尾随 space 到主视图:136
当我想改变_test(子视图)的大小时,但这似乎不起作用:
self._test.frame = CGRectMake(self._test.frame.origin.x + 10,
self._test.frame.origin.y,
self._test.frame.size.width - 10,
self._test.frame.size.height);
我认为这是因为限制,但是,我该怎么做呢?
_test
has two constraints:
top space to main view: 20
trailling space to main view: 136
嗯,这是你的第一个问题。如果这真的是一个通用的 UIView,那么约束还不够。如果您要完全使用约束,则必须完全确定 视图的位置和大小,而您没有做到这一点。因此,您的约束无效。
一旦您的约束生效,那么您确实将面临无法通过 frame
设置视图的位置和大小的事实。设置 frame
和使用约束是互斥的!如果你打算使用约束来定位和调整这个东西的大小,那么要重新定位或调整它的大小你必须改变它的 constraints,而不是它的 frame
.
主视图上有一个子视图(UIView),我想改变子视图(_test)的大小。
_test
有两个约束:
- 顶space到主视图:20
- 尾随 space 到主视图:136
当我想改变_test(子视图)的大小时,但这似乎不起作用:
self._test.frame = CGRectMake(self._test.frame.origin.x + 10,
self._test.frame.origin.y,
self._test.frame.size.width - 10,
self._test.frame.size.height);
我认为这是因为限制,但是,我该怎么做呢?
_test
has two constraints:top space to main view: 20
trailling space to main view: 136
嗯,这是你的第一个问题。如果这真的是一个通用的 UIView,那么约束还不够。如果您要完全使用约束,则必须完全确定 视图的位置和大小,而您没有做到这一点。因此,您的约束无效。
一旦您的约束生效,那么您确实将面临无法通过 frame
设置视图的位置和大小的事实。设置 frame
和使用约束是互斥的!如果你打算使用约束来定位和调整这个东西的大小,那么要重新定位或调整它的大小你必须改变它的 constraints,而不是它的 frame
.