xcode 游乐场中的 UITableView 不显示文本/字幕

Posted

技术标签:

【中文标题】xcode 游乐场中的 UITableView 不显示文本/字幕【英文标题】:UITableView in xcode playground is not showing text/subtitles 【发布时间】:2018-03-25 10:56:16 【问题描述】:

我正在关注一篇关于 WWDC17 的文章。一切都很好,但我的实时视图看起来不像它应该的样子。 (.subtitle) 和表格单元格没有显示任何内容

谁能帮我完成这项工作?

下面是操场:

import PlaygroundSupport
import UIKit

class WWDCMasterViewController: UITableViewController 

    var reasons = ["WWDC is great", "the people are awesome", "I love lab works", "key of success"]

    override func viewDidLoad() 
        title = "Reason I should attend WWDC18"
        view.backgroundColor = .lightGray
    

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        var cell: UITableViewCell!
        cell = tableView.dequeueReusableCell(withIdentifier: "Cell")
        if cell == nil 
            cell = UITableViewCell(style: .subtitle , reuseIdentifier: "Cell")
            cell.accessoryType = .disclosureIndicator
        

        let reason = reasons[indexPath.row]
        cell.detailTextLabel?.text = "I want to attend because\(reason)"
        cell.textLabel?.text = "Reason #\(indexPath.row + 1)"

        return cell
    


let master = WWDCMasterViewController()
let nav = UINavigationController(rootViewController: master)
PlaygroundPage.current.liveView = nav

【问题讨论】:

【参考方案1】:

由于您缺少 UITableViewDataSource 的方法 numberOfRowsInSection,因此您的 UITableView 最终有 0 行,请尝试添加以下内容:

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return self.reasons.count

这里是固定的游乐场:

import PlaygroundSupport
import UIKit

class WWDCMasterViewController: UITableViewController 

    var reasons = ["WWDC is great", "the people are awesome", "I love lab works", "key of success"]

    override func viewDidLoad() 
        title = "Reason I should attend WWDC18"
        view.backgroundColor = .lightGray
    

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        return self.reasons.count
    

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        var cell: UITableViewCell! = tableView.dequeueReusableCell(withIdentifier: "Cell")
        if cell == nil 
            cell = UITableViewCell(style: .subtitle , reuseIdentifier: "Cell")
            cell.accessoryType = .disclosureIndicator
        

        let reason = reasons[indexPath.row]
        cell.detailTextLabel?.text = "I want to attend because\(reason)"
        cell.textLabel?.text = "Reason #\(indexPath.row + 1)"

        return cell
    


let master = WWDCMasterViewController()
let nav = UINavigationController(rootViewController: master)
PlaygroundPage.current.liveView = nav

【讨论】:

以上是关于xcode 游乐场中的 UITableView 不显示文本/字幕的主要内容,如果未能解决你的问题,请参考以下文章

Xcode:有啥方法可以刷新/重新运行游乐场?

游乐场不跟踪 uiimage

El Capitan XCode7.0.1 和 XCode7.1Beta 中的游乐场错误

Xcode游乐场不执行功能

Swift 4.2,Xcode 游乐场中的 String firstIndex() 函数错误

Xcode 8.3.2 游乐场实时视图渲染不起作用