我在Swift中遇到自定义TableViewCell
的问题。我试图在TableViewCell
中展示自定义TableView
,但效果不佳。屏幕上有一个灰色方块......我在互联网上找到了一些建议禁用自动布局的答案。我做了但现在,我的细胞显示但是细胞的高度混乱。正如您所看到的,应该具有红色背景的单元格显示在3个单元格的高度上,而背景仅在1个单元格上显示。单元格的高度和行高都设置为150px。
With Auto-Layout: Without Auto-Layout:
这是Cell代码:
class CharacterDescription : UITableViewCell {
@IBOutlet var imageProfile: UIImageView!
@IBOutlet var name: UILabel!
@IBOutlet var hp: UILabel!
@IBOutlet var damages: UILabel!
@IBOutlet var range: UILabel!
@IBOutlet var mp: UILabel!
@IBOutlet var critChances: UILabel!
@IBOutlet var critModifier: UILabel!
required init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
}
override init(style: UITableViewCellStyle, reuseIdentifier: String!) {
super.init(style: UITableViewCellStyle.Value1, reuseIdentifier: reuseIdentifier)
}
}
TableViewController
代码:
class CharacterDescriptionsViewController : UITableViewController, UITableViewDataSource, UITableViewDelegate {
var userProfile: UserProfile!
required init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
}
override init() {
super.init()
}
override func viewDidLoad() {
var nibName = UINib(nibName: "CharacterDescription", bundle:nil)
self.tableView.registerNib(nibName, forCellReuseIdentifier: "CharacterDescription")
}
override func numberOfSectionsInTableView(tableView: UITableView?) -> Int {
return 1
}
override func tableView(tableView: UITableView?, numberOfRowsInSection section: Int) -> Int {
return userProfile.characters!.count
}
override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell? {
var cell = self.tableView.dequeueReusableCellWithIdentifier("CharacterDescription", forIndexPath: indexPath) as CharacterDescription
//!TODO: Init of cell
return cell
}
}
答案 0 :(得分:2)
您必须覆盖TableView.heightForRowAtIndexPath
才能返回自定义单元格的高度。