在有一些约束时更改uiview框架

时间:2015-06-17 16:52:04

标签: ios uiview constraints

主视图上有一个子视图(UIView),我想改变子视图的大小(_test)。

_test有两个限制:

  1. 主视图的顶部空间:20
  2. 将空间拖到主视图:136
  3. 当我想要更改_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);
    

    我认为这是因为约束,但是,我该怎么做?

1 个答案:

答案 0 :(得分:1)

  

_test有两个限制:

     

主视图的顶部空间:20

     

将空间拖到主视图:136

嗯,这是你的第一个问题。如果这确实是一个通用的UIView,那么这就不够了。如果您要使用约束,则必须完全确定视图的位置和大小,并且您未能这样做。因此,您的约束无效。

一旦你的约束变得有效​​,那么你确实会面临这样一个事实:你无法通过frame来设置视图的位置和大小。设置frame和使用约束是互斥的!如果您要使用约束来定位和调整大小,那么要重新定位或调整大小,您必须更改其约束,而不是其frame