从 NSArray 创建自定义无序列表

Posted

技术标签:

【中文标题】从 NSArray 创建自定义无序列表【英文标题】:create custom unordered list from NSArray 【发布时间】:2015-04-30 06:29:22 【问题描述】:

我正在尝试构建一个自定义无序列表(自定义复选标记为“项目符号”)。此列表的数据是包含NSStrings 的NSArray

我的想法是将多个子视图(基于 xib 文件)添加到 UIView。 xib 文件有一个UIImageView(复选标记)和一个UIlabel(用于设置文本)。

我尝试循环遍历NSArray,并将自定义UIView 添加到列表容器中:

for (id line in currentDeal.dealDescriptionArray) 
    NSLog(line);

    CustomLineView *specView = [[[NSBundle mainBundle] loadNibNamed:@"customLineView" owner:self options:nil] objectAtIndex:0];
    specView.specLabel.text = line;
    [listContainer addSubview:specView];


但是,这仅显示数组的最后一项,我想我只是添加指向同一个对象的指针,但我不知道如何创建“新”实例。

有人知道如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

您正在创建新实例,只是没有定位它们,因此它们都在彼此之上(因此实际上您只能看到最后一个)。

要么在添加为子视图之前设置框架,要么在添加为子视图之后添加约束,以便适当地布局视图。您可以通过在循环中增加 img 一个计数器来表示父视图中的位置偏移量。

【讨论】:

啊,谢谢!这就说得通了。子视图可以有不同的高度(当字符串太长时,它会超过多行)。因此,我想我将不得不处理约束。我应该在一个子视图和前一个子视图之间创建约束,还是可以/更好地获取每个子视图的高度并计算相对于容器的位置? 是的,最好在视图之间设置约束并允许内部内容大小设置高度

以上是关于从 NSArray 创建自定义无序列表的主要内容,如果未能解决你的问题,请参考以下文章

HTMLHTML 列表 ( 无序列表 | 有序列表 | 自定义列表 )

无序列表,有序列表,自定义列表

HTML前端:三种列表“无序列表 有序列表 自定义列表“ 定义

HTML前端:三种列表“无序列表 有序列表 自定义列表“ 定义

HTML前端:三种列表“无序列表 有序列表 自定义列表“ 定义

HTML前端:三种列表“无序列表 有序列表 自定义列表“ 定义