gpt4 book ai didi

ios自动布局类似

转载 作者:行者123 更新时间:2023-11-28 22:45:52 26 4
gpt4 key购买 nike

我是 ios 的新手。在编写我的第一个应用程序时,我遇到了自动布局仅适用于 ios 6.0。我希望至少为 5.0 ios 制作我的应用程序。

也许任何人都知道如何在没有自动布局的情况下制作它。

我的标签有动态文本,1 行或 2 行或 3 行取决于用户设置。在它下面我有 uitextfield。使用自动布局,我不会头疼,因为它可以完成所有工作,文本字段位于上方 1 2 或 3 行文本的下方(调整大小,自动移动)。

那么如果没有自动布局我应该怎么做呢?

最佳答案

如果没有自动布局,您必须在代码中处理它。推荐的方法是将容器 View (包含标签和文本字段的 View )子类化并覆盖 layoutSubviews 方法。在那里,您可以根据所需的标准(例如 label text metrics)手动设置 View subview 的框架。

编辑:这是一个可能在 containverView layoutSubviews 方法中的具体示例(从我的头顶输入):

// Those could be IBOutlets, or obtained by inspecting self.subviews
UILabel *label = self.label;
UITextField *textField = self.textField;

// Determine the labelSize, we could limit the maxSize (especially the height) manually here
CGSize maxSize = self.bounds.size;
CGSize labelSize = [label.text sizeWithFont:label.font constrainedToSize:maxSize lineBreakMode:label.lineBreakMode];

// Set the computed label size
CGRect labelFrame = label.frame;
labelFrame.size = labelSize;
label.frame = labelFrame;

// Now move the textField just below the label (we could also add a vertical margin here if we want)
CGRect textFieldFrame = textField.frame;
textFieldFrame.origin.y = labelFrame.origin.y + labelFrame.size.height;
textField.frame = textFieldFrame;

这只是确保文本字段始终位于标签下方。根据您设置的限制条件,您可能需要添加更多代码以确保 UI 布局正确。

您还需要确保在标签文本更改时调用 [containverView setNeedsLayout]

关于ios自动布局类似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13232067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com