gpt4 book ai didi

objective-c - 如何循环 iOS UILabel 以显示博客文章的多条评论?

转载 作者:行者123 更新时间:2023-12-01 19:16:35 25 4
gpt4 key购买 nike

这是一个博客类型的应用程序,其中显示了博客文章,您可以在下面阅读对该文章的几条评论。

| Post Title Here
|
| Post text here lorem ipsum
| dolor bla bla bla
|
| ---------------------------------------------
| Comment 1
| ---------------------------------------------
| Comment 2
| ---------------------------------------------
| Comment 3
| ---------------------------------------------
| etc

我的 JSON 提要如下所示:
...
{
"post_id": "1463",
"post_title": null,
"post_text": "dffsdjdflkjklk dlfkjsdlfkj",
"comment": [
{
"comment_id": "2162",
"comment_text": "yuiyuiiopiop",
},
{
"comment_id": "2163",
"comment_text": "tyutyutyutyuu",
},
{
"comment_id": "2164",
"comment_text": "sdfsertertr",
},
]
},
...

这就是我读它的方式
NSDictionary *post           = self.detailItem;
NSArray *commentThread = [post objectForKey:@"comment"];
NSUInteger commentCount = [commentThread count];

for (int i = 0; i < commentCount; i++) {
NSDictionary *comment = [commentThread objectAtIndex:i];
NSString *commentText = [comment objectForKey:@"comment_text"];

commentTextLabel.text = commentText;
}

在我的 Storyboard中,我有一个连接到 commentTextLabel 的 UILabel。 .

使用上述方法,我认为只有最后一条评论显示。我希望生成 UILabel i次,但似乎并非如此。

我应该怎么做才能创建多个 UILabel,每个评论一个,所以它们最终会堆积如我在这篇文章顶部显示的那样?

非常感谢任何形式的帮助、指示或建议。

最佳答案

由于您在 Storyboard 中连接了一个 UILabel,因此您在每次迭代中都会覆盖它的内容。

您要做的是为每个评论创建一个新的 UILabel,设置它的框架并将其作为 subview 添加到它的父 View 并迭代到下一个。

例如:

for (int i = 0; i < commentCount; i++) {
NSDictionary *comment = [commentThread objectAtIndex:i];
NSString *commentText = [comment objectForKey:@"comment_text"];
UILabel *newLabel = [UILabel alloc] init];

newLabel.text = commentText;
newLabel.frame = CGRectMake(origin.x, origin.y, width, height);
[self.view addSubview:newLabel];
}

origin.x, origin.y 每次都必须计算以满足您的需要,您可以插入一个变量来保存最后一个 origin.y 并每次添加它的高度和边距以使其看起来像一个列表。

另一方面,最有效的方法是使用 UITableView。您的 JSON 可以解析为一个数组,每个条目都是一个单元格。这样您就可以利用重用单元格。如果您不重复使用单元格并继续使用当前设置,如果您有太多评论,您的应用程序的性能可能会受到影响。

还要考虑到在 TableView 或 ScrollView 中显示标签在帧率方面不是很有效。阿尔法混合会影响你的表现。我建议你也用谷歌搜索 tweetie 的快速执行 tableviews 或查看这篇文章
atebits Twitter fast scrolling

关于objective-c - 如何循环 iOS UILabel 以显示博客文章的多条评论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12905854/

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