Ios 如何在UIView中动态添加/删除按钮,并重新定位其下方的按钮,以及垂直调整视图大小?

Ios 如何在UIView中动态添加/删除按钮,并重新定位其下方的按钮,以及垂直调整视图大小?,ios,iphone,objective-c,Ios,Iphone,Objective C,我有一个在nib中定义的UIView,我需要能够在该视图中显示/隐藏中间按钮。当我显示按钮时,我需要重新定位它下面的两个底部按钮,并使视图更高,以便为所有内容腾出空间。当我隐藏中间的按钮时,我需要向上移动底部的两个按钮并垂直调整视图的大小,使其不那么高。我不需要设置任何动画,因为当视图对用户可见时,这些更改将永远不会发生 我是iOS新手,我习惯于使用Autolayout,但在这种情况下,我无法使用Autolayout自动处理此问题,因此我当前的方法是针对两种不同的情况对两个底部按钮的帧位置和尺寸

我有一个在nib中定义的UIView,我需要能够在该视图中显示/隐藏中间按钮。当我显示按钮时,我需要重新定位它下面的两个底部按钮,并使视图更高,以便为所有内容腾出空间。当我隐藏中间的按钮时,我需要向上移动底部的两个按钮并垂直调整视图的大小,使其不那么高。我不需要设置任何动画,因为当视图对用户可见时,这些更改将永远不会发生

我是iOS新手,我习惯于使用Autolayout,但在这种情况下,我无法使用Autolayout自动处理此问题,因此我当前的方法是针对两种不同的情况对两个底部按钮的帧位置和尺寸进行硬编码。我还为视图本身硬编码了两种不同的帧大小。在viewDidLoad中,我确定是否需要显示/隐藏中间按钮,并适当设置视图和底部按钮的框架。这是可行的,但如果你感觉不舒服的话。我有没有更好的办法


提前感谢您的智慧

不需要在viewDidLoad中硬编码帧大小。唯一需要注意的是确定是否需要显示中间按钮。在分配UIButtons的实现文件中,检查是否必须显示中间按钮,如果是,则分配,如果不是,则不显示。两个按钮和视图的框架应包含可相应设置/调整其大小的因子


您基本上是以编程方式管理自动布局。如果你甚至不被允许这样做,那么无论你最后做什么,都将是一个骇客。

没有自动布局,你只能更改帧。你的方法很常见。手动设置视图的原点和大小没有什么不妥之处。事实上,我们这些不使用interface builder的人(我不)手动设置它们。谢谢,user2099176,如果我理解正确,你是说不要硬编码帧值,而是在我显示/隐藏LayoutSubview中的中间按钮后计算它们?与包含视图的框架相同?基本上是。我建议不要再计算和设置两个按钮的框架,只需设置它们的框架,让它们自动选择合适的位置(再次自动布局)。尽管如此,仅仅隐藏中间的按钮不起作用,因为其他两个按钮仍然可以读取其帧。您必须将帧设置为CGRectZero,或者不分配中间按钮。必须调整包含视图的大小,因为在呈现其所有子视图之前无法获取其大小。