gpt4 book ai didi

ios - 动态添加 UILabels 到 UIView

转载 作者:行者123 更新时间:2023-11-28 20:01:34 26 4
gpt4 key购买 nike

我有一个可以返回一些文本数据的网络服务。这个想法是提取文本并为要在屏幕上显示的文本创建 UILabel。然而,我不知道两件事:

  1. 需要多少标签
  2. 文字的长度

由于事先不了解这些事情,我需要一种方法来创建一些标签,这些标签的长度适合其包含的文本。

我已经设法将数据存储到数组中的一些对象中,然后遍历它们创建标签。像这样:

    for (BBItemAttributes *attribute in self.item.productAttributes){

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 50, 10)];
label.text = attribute.displayTemplate;
[self.scrollView addSubview:label];
}

显然,这里的问题是由于在代码中创建了 UILabel,并且每个都有一个硬编码的 CGRect 大小,它们彼此重叠,有时由于文本太长而不适合各自的框。

我需要一种方法将所有标签都排在同一个 X 轴点和不同的 Y 轴点上,以便它们彼此相邻并隔开一定的空间。

有更好的方法吗?

最佳答案

你需要做这样的事情;

CGFloat yOrigin = 100;
CGFloat fixedSpace = 10;
for (BBItemAttributes *attribute in self.item.productAttributes)
{
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(100, yOrigin, 50, 10)];
label.text = attribute.displayTemplate;
label.numberOfLines = 0;
[label sizeToFit]; // Resizes label to fit the text.
[self.scrollView addSubview:label];
yOrigin += label.frame.size.height + fixedSpace;
}

关于ios - 动态添加 UILabels 到 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23780987/

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