ios - 如何在 UIView 中动态添加/删除按钮并重新定位其下方的按钮并垂直调整 View 大小?

标签 ios iphone objective-c

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

我是 iOS 的新手,我习惯使用 Autolayout,但是在这种情况下我不能使用 Autolayout 来自动处理这个问题,所以我目前的方法是硬编码两个底部按钮的框架位置和尺寸对于两种不同的情况。我还为 View 本身硬编码了两种不同的帧大小。在 viewDidLoad 中,我确定是否需要显示/隐藏中间按钮并适本地设置 View 和底部按钮的框架。这行得通,但如果感觉不好。有没有更好的方法我应该这样做?

提前感谢您的智慧!

最佳答案

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

您基本上是以编程方式管理自动布局。如果你甚至都不允许这样做,那么你最终做的任何其他事情都几乎是黑客行为。

关于ios - 如何在 UIView 中动态添加/删除按钮并重新定位其下方的按钮并垂直调整 View 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20385342/

相关文章:

iphone - 如何启动 "Google Translate"应用程序?

objective-c - 存储文件名和属性列表名称常量的最佳实践

iphone - 我的 UIColor 代码有什么问题?

iOS Swift 使用 for 循环在 TableView Cell 中添加两个 View

iphone - 从 iPhone 中视频文件的保存路径获取缩略图

iphone - 显示 UIPickerview 选择的值

iphone - 将 UIScrollView 添加到我的应用程序

ios - 在 UIPageViewController 上没有弹跳?

ios - 如何快速播放下载的音频文件

android - (未设置)显示在 Firebase Analytics 仪表板上