从 NSArray 创建自定义无序列表
Posted
技术标签:
【中文标题】从 NSArray 创建自定义无序列表【英文标题】:create custom unordered list from NSArray 【发布时间】:2015-04-30 06:29:22 【问题描述】:我正在尝试构建一个自定义无序列表(自定义复选标记为“项目符号”)。此列表的数据是包含NSString
s 的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前端:三种列表“无序列表 有序列表 自定义列表“ 定义