在Swift中使用UITableView
及其UITableViewCell
(s)。我在显示detailTextLabel
的{{1}}字段时出现问题。
我已经找到了这两个有用的帖子,但无法获得完全有效的解决方案: swift detailTextLabel not showing up How to Set UITableViewCellStyleSubtitle and dequeueReusableCell in Swift?
以下是我正在使用的代码,与我的问题相关:
UITableViewCell
当我尝试使用override func viewDidLoad() {
super.viewDidLoad()
………….
theTableView = UITableView(frame: tmpFrame)
………….
theTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "reuseIdentifier")
theTableView.dataSource = self
theTableView.delegate = self
self.view.addSubview(theTableView)
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)
cell.backgroundColor = UIColor.clearColor()
cell.textLabel?.text = "THE-TEXT-LABEL"
cell.detailTextLabel?.text = "KIJILO" // This does not show up.
return cell
}
的{{1}}字段时,它不显示。在网上搜索,我知道我必须为单元格使用正确的样式(detailTextLabel
),但我不知道如何将该更改集成到我的代码中。我见过的示例基于子类UITableViewCell
,我想我不需要将UITableViewCellStyle
子类化为仅使用UITableViewCell
字段。如果我错了,请告诉我。
我也尝试了上面提到的帖子中的一些内容,但没有任何方法可以解决。
答案 0 :(得分:25)
您已注册UITableViewCell
theTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "reuseIdentifier")
这意味着当您致电
时tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)
将使用UITableViewCellStyleDefault样式为您自动创建一个。
因为您需要自定义样式,所以您需要做一些事情:
删除
theTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "reuseIdentifier")
替换
var cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)
以下
var cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier")
if cell == nil {
cell = UITableViewCell(style: .Value1, reuseIdentifier: "reuseIdentifier")
}
这里发生的事情是dequeueReusableCellWithIdentifier
如果无法将单元格出列,则返回nil。然后,您可以使用指定的样式生成自己的单元格。
注意:在没有Xcode的情况下编写,我是Swift的新手,如果它没有编译就道歉。
答案 1 :(得分:1)
我发现仅检查<AndroidNativeLibrary Include="lib\x86\libwkhtmltox.so" />
是否为 ngOnInit() {
this.route.paramMap.subscribe(params => {
console.log(params.get('orgstructure'));
});
}
是不够的,我添加了此额外检查:
cell
答案 2 :(得分:1)
如果您使用的是 Storyboard
:
Subtitle
答案 3 :(得分:0)
很好的答案,谢谢!我唯一要补充的是,如果您想要不同风格的详细信息视图(我正在寻找 .subtitle),您需要执行以下操作:
cell = UITableViewCell(style:.subtitle,reuseIdentifier:"reuseIdentifier")
其中:CellStyle:Int
case `default` = 0
case value1 = 1
case value2 = 2
case subtitle = 3