Swift:表格单元格出现一秒钟然后消失

Posted

技术标签:

【中文标题】Swift:表格单元格出现一秒钟然后消失【英文标题】:Swift: table cell appears for a second and disappears 【发布时间】:2017-11-27 14:22:47 【问题描述】:

我在 UIViewController 中有一个父 UIView。 This parent UIView is put under segmented control such that when a different index is selected, this parent view brings to front the according added subviews (e.g. currentViewController().view).

var parentView: UIView!
var currentView: UIView!
override func viewDidLoad() 
    currentView = currentViewController().view
    parentUIView.addSubview(currentView)
    parentUIView.bringSubview(currentView)

currentViewController里面有一个UITableView。由于控制器是在 xib 下构建的,因此我在 currentViewController 中注册了单元格。 (示例代码如下)

import UIKit

class currentViewController: UIViewController, UITableViewDelegate, UITableViewDataSource 

@IBOutlet var stockInfo: UITableView!

override func viewDidLoad() 
    super.viewDidLoad()
    stockInfo.delegate = self
    stockInfo.dataSource = self
    stockInfo.register(UITableViewCell.self, forCellReuseIdentifier: "something")


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return 2


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    let cell = stockInfo.dequeueReusableCell(withIdentifier: "something", for: indexPath) as! UITableViewCell
    cell.textLabel?.text = "testing DEFAULT"
    return cell

代码非常简单直接。选择分段控件时,我检查索引并将此视图置于最前面。上面的代码只是一个例子。我也有其他看法。

不幸的是,我的硬编码单元(为了调试方便)甚至一秒钟都没有出现。它们在第一次加载视图时出现,然后在没有任何用户操作的情况下消失。我想他们被释放了?还是有什么我不知道的原因?有人可以帮忙吗?我已经坚持了几个小时。

【问题讨论】:

尝试评论您的viewDidLoad代码并尝试理解! @SalmanGhumsani viewDidLoad 的哪一部分令人困惑?我不太明白你想表达什么 您遇到了内存管理问题。您没有强烈引用 currentViewController 实例。 @rmaddy 我对 swift 比较陌生。我知道在objective-c中你可以明确地说明一个变量是强还是弱。迅速,据我所知,您可以明确声明一个弱变量。变量默认是强的?如何创建对 currentViewController 的强引用? 与您对 parentViewcurrentView 属性所做的相同。 【参考方案1】:

让我补充一下,我已经浪费了一整天的时间来弄清楚。 reloadData() 后,我的表格视图单元格消失了。解决方案是 -> 在 prepareForReuse() 中取消隐藏单元格,prepareForReuse() 用于单元格类本身。

【讨论】:

以上是关于Swift:表格单元格出现一秒钟然后消失的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 表格视图中的单元格出现在另一个单元格上

表格视图单元格的快速底部边框消失

来自 URL 的 Swift 表格视图图像在选择单元格之前不会显示

UITableView 中的 UIImage 显示另一个单元格的图像一秒钟

UICollectionView 单元格在几秒钟后消失或在点击屏幕时消失

UITableView 单元格在向下滚动然后备份后消失