即使在代码编译后也不显示文本标签

Posted

技术标签:

【中文标题】即使在代码编译后也不显示文本标签【英文标题】:Text Label is not shown even after code compilation 【发布时间】:2020-06-12 19:24:48 【问题描述】:

class ViewController: UITableViewController 
    var pictures = [String]()
    override func viewDidLoad() 
        super.viewDidLoad()

        let fm = FileManager.default
        let path = Bundle.main.resourcePath!
        let items = try! fm.contentsOfDirectory(atPath: path)

        for item in items
            if item.hasSuffix("@3x")
                pictures.append(item)
            
        
        print(pictures)
    

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        return pictures.count
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: "Country", for: indexPath)
        cell.textLabel?.text = pictures[indexPath.row]
        return cell
    

我正在尝试使用我在文件管理器/文件夹中的文件的文本标签分配该行。我的代码运行正确,但后缀为“@3x”的文件名的文本标签不可见。请帮忙。

【问题讨论】:

不相关,但您可以将循环替换为 pictures = Bundle.main.paths(forResourcesOfType: "@3x", inDirectory: nil)。不需要FileManager 感谢您的建议。它有帮助 【参考方案1】:

提取完成后,您需要在tableView 上调用reloadData 方法。这是代码:

var pictures = [String]()
override func viewDidLoad() 
    super.viewDidLoad()

    let fm = FileManager.default
    let path = Bundle.main.resourcePath!
    let items = try! fm.contentsOfDirectory(atPath: path)

    for item in items
        if item.hasSuffix("@3x")
            pictures.append(item)
        
    
    print(pictures)
    tableView.reloadData()

【讨论】:

我已检查编辑您建议的代码,但仍然没有输出。返回的行号是否可能为0?因此无法分配单元标签。我该如何检查。

以上是关于即使在代码编译后也不显示文本标签的主要内容,如果未能解决你的问题,请参考以下文章

即使父视图可访问,子视图也不显示在层次结构中

即使在 React 中正确导入后也不包含默认导出

即使在实现委托方法后也没有显示页面控件

UIWebview 即使在加载 url 后也显示空白屏幕

Excel 2007 VSTO 加载项即使在成功安装后也不可见

即使 PreparedStatement 仅使用一次,ResultSet 关闭错误后也不允许操作