在 swift 中将 TableView 添加到 .xib 视图中
Add TableView into .xib View in swift
单击按钮后,我有一个 .xib 视图,我在其中为单元格定义了一个 tableView.Here 我创建了另一个 .xib 文件,因为只有 option 。我认为没有默认单元格。所以我如何在 tableview 单元格中显示项目。
我已经像这样注册了 .Xib 并尝试了但我得到了令人惊讶的观点。
class CustomAddOnVC: UIViewController,UITableViewDataSource,UITableViewDelegate {
let items = ["pk","ak","sk"]
override func viewDidLoad() {
super.viewDidLoad()
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let identifier = "Cell"
var cell: CustomOneCell! = tableView.dequeueReusableCellWithIdentifier(identifier,forIndexPath: indexPath) as? CustomOneCell
if cell == nil {
tableView.registerNib(UINib(nibName: "CustomOneCell", bundle: nil), forCellReuseIdentifier: identifier)
cell = tableView.dequeueReusableCellWithIdentifier(identifier,forIndexPath:indexPath ) as? CustomOneCell
cell.addOnName.text = items[indexPath.row]
cell.addOnPrice.text = "£0.0"
}
return cell
}
此处计数的项目为 3,但数据仅填充在第一个中。
截图
还有一件事我怎样才能设置所有项目末尾的视图高度?如您所见,项目后有额外的 space。如果我减小尺寸并且出现更多项目,那么同样 problem.I 想要根据项目数据动态设置高度
我想是因为你第一次注册的时候没有进入你的cell == nil
了。因此,我的建议是将您的更新文本移到 if 语句之外。像这样:
if cell == nil {
tableView.registerNib(UINib(nibName: "CustomOneCell", bundle: nil), forCellReuseIdentifier: identifier)
cell = tableView.dequeueReusableCellWithIdentifier(identifier,forIndexPath:indexPath ) as? CustomOneCell
}
cell.addOnName.text = items[indexPath.row]
cell.addOnPrice.text = "£0.0"`
单击按钮后,我有一个 .xib 视图,我在其中为单元格定义了一个 tableView.Here 我创建了另一个 .xib 文件,因为只有 option 。我认为没有默认单元格。所以我如何在 tableview 单元格中显示项目。 我已经像这样注册了 .Xib 并尝试了但我得到了令人惊讶的观点。
class CustomAddOnVC: UIViewController,UITableViewDataSource,UITableViewDelegate {
let items = ["pk","ak","sk"]
override func viewDidLoad() {
super.viewDidLoad()
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let identifier = "Cell"
var cell: CustomOneCell! = tableView.dequeueReusableCellWithIdentifier(identifier,forIndexPath: indexPath) as? CustomOneCell
if cell == nil {
tableView.registerNib(UINib(nibName: "CustomOneCell", bundle: nil), forCellReuseIdentifier: identifier)
cell = tableView.dequeueReusableCellWithIdentifier(identifier,forIndexPath:indexPath ) as? CustomOneCell
cell.addOnName.text = items[indexPath.row]
cell.addOnPrice.text = "£0.0"
}
return cell
}
此处计数的项目为 3,但数据仅填充在第一个中。
截图
还有一件事我怎样才能设置所有项目末尾的视图高度?如您所见,项目后有额外的 space。如果我减小尺寸并且出现更多项目,那么同样 problem.I 想要根据项目数据动态设置高度
我想是因为你第一次注册的时候没有进入你的cell == nil
了。因此,我的建议是将您的更新文本移到 if 语句之外。像这样:
if cell == nil {
tableView.registerNib(UINib(nibName: "CustomOneCell", bundle: nil), forCellReuseIdentifier: identifier)
cell = tableView.dequeueReusableCellWithIdentifier(identifier,forIndexPath:indexPath ) as? CustomOneCell
}
cell.addOnName.text = items[indexPath.row]
cell.addOnPrice.text = "£0.0"`