如何在 UITableViewCell 中使用预定义视图(笔尖)?
Posted
技术标签:
【中文标题】如何在 UITableViewCell 中使用预定义视图(笔尖)?【英文标题】:How to use a predefined view (nib) in a UITableViewCell? 【发布时间】:2015-02-19 13:42:34 【问题描述】:我的列表由带有图像和一些文本字段的卡片视图组成,所有这些都具有复杂的布局。此卡将在详细视图中重复使用,因此将其包含在 UITableViewCell
布局中然后调用 UITableView.registerNib()
似乎对我不起作用。我想知道最简洁的方法来重用我在 NIB 文件中创建的视图作为列表项和我的详细信息屏幕的一部分,同时在 NIB 中保留尽可能多的视图逻辑,例如约束和样式-文件。
【问题讨论】:
“不起作用”是什么意思?编译器错误?运行时异常?结果错误? – 你的代码在哪里? 它确实有效,但感觉不太对,我认为必须有更好的方法。不过,我对马特的回答很满意,很简单。 【参考方案1】:我想知道以最简洁的方式重用我在 NIB 文件中创建的视图作为列表项和详细信息屏幕的一部分
做你已经在做的事情:使用一个只包含一个视图的 nib(一个 .xib 文件),即设计的 UITableViewCell,并将该 nib 注册到表格视图 - 正是这样你说“似乎不适合你”。它确实工作。所以现在你所有的表格行都包含这个表格视图单元格的副本。
但有诀窍。当你想在其他地方显示视图时,手动加载 nib,拉出视图(UITableViewCell),拉出它的contentView
,并将其作为子视图添加到你的界面。
// 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à!
【讨论】:
感谢样品!以上是关于如何在 UITableViewCell 中使用预定义视图(笔尖)?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UITableViewCell 中使用字典显示 NSArray 对象
如何在 UITableViewCell 中使用自定义 UIButton?
如何在 UITableViewCell 上使用自定义初始化程序?
使用 lineHeightMultiple 控制行间行距时,如何在 UITableViewCell 中垂直对齐我的 UILabel?