我正在为 iPad 构建一个涉及以编程方式添加 UIViews 的应用程序。当视图加载时,我可以添加其他 UIViews 就好了。但是,在加载 UI 之后,当我尝试以编程方式创建 UIView 并将其添加到角落时,其他 UIView 会移动并且视图不会重绘(因此其他 UIView 和小部件的旧位置/大小是也画了)。
关于我应该做些什么来避免这个问题的任何想法?
编辑:调整给我问题的面板大小的代码位于按下按钮时调用的函数中。该函数的核心是这样的:
CGRect fooPanelFrame = CGRectMake(fBasePanelWidth,
50,
fBasePanelWidth,
panelHeight);
[_fooPanelView setFrame:fooPanelFrame];
其中 'fooPanelView' 是 UIView 类型。这是唯一一个在所有内容构建完成后都会调整大小的。其他 UIView 在“viewDidLayoutSubViews”方法中被调整大小(以类似的方式)。
编辑:这是 UI 之前的样子:
这是重新调整中央框架大小后的样子:
蓝色只是根 UIView 的颜色。
需要注意的另一点是,当我记录我正在更改的视图的大小时,在调整大小之前,这些值是我所期望的,但不是之后。在我的测试中,我故意将其设置为全部 20 秒,但返回的帧的值不是那个。我想知道这是否意味着我需要更改超级视图中的某些设置...