如何在UITableViewCell中使用预定义视图(笔尖)?

时间:2015-02-19 13:42:34

标签: ios uitableview swift xib nib

我的列表包含带有图像和一些文本字段的卡片视图,所有这些都具有复杂的布局。此卡片将在详细视图中重复使用,因此将其包含在UITableViewCell布局中,然后调用UITableView.registerNib()似乎对我无效。我想知道将我在NIB文件中创建的视图作为列表项和我的详细信息屏幕的一部分重用的最简洁方法,同时保留尽可能多的视图逻辑,例如约束和样式。 NIB-文件。

1 个答案:

答案 0 :(得分:1)

  

我想知道将我在NIB文件中创建的视图作为列表项和详细信息屏幕的一部分重用的最简洁方法

正是你正在做的事情:使用只包含一个视图的nib(一个 .xib 文件),按照设计使用UITableViewCell,并使用表视图注册该nib - 正是这个东西你说“似乎不适合你”。它 工作。所以现在所有的表行都包含这个表视图单元的副本。

但是有诀窍。如果要在其他地方显示视图,请手动加载nib,拉出视图(UITableViewCell),拉出其contentView ,并将其作为子视图添加到您的界面。 / p>

// substitute correct name of xib file here
let arr = UINib(nibName: "MyTableViewCell", bundle: nil).instantiateWithOwner(
    nil, options: nil)
let tvc = arr[0] as! UITableViewCell
let v = tvc.contentView // now it's a normal view! customize as needed
v.frame.origin = CGPointMake(100,100) // or whatever
self.view.addSubview(v) // and plop it into the interface! voilà!