Ios 带有原型的UITableView不';卷轴

Ios 带有原型的UITableView不';卷轴,ios,swift,uitableview,Ios,Swift,Uitableview,我真的不明白为什么它不能用手指滚动。我没有用模拟器,它是真正的设备 以下是故事板的截图: 此外,它还检查了用户交互 另外,我在dataSource和delegate中连接到我的VC。 tableView将插座作为lvMain: 代码如下:我每秒添加一次结果,以便逐个填充tableView: var answers = [Answer]() var shownAnswers = [Answer]() override func viewDidLoad() { super.viewD

我真的不明白为什么它不能用手指滚动。我没有用模拟器,它是真正的设备

以下是故事板的截图:

此外,它还检查了用户交互

另外,我在dataSource和delegate中连接到我的VC。 tableView将插座作为lvMain:

代码如下:我每秒添加一次结果,以便逐个填充tableView:

var answers = [Answer]()
var shownAnswers = [Answer]()


override func viewDidLoad() {
    super.viewDidLoad()

    self.view.backgroundColor = res.getColor("bg_title")
    UIDevice.current.setValue(UIInterfaceOrientation.portrait.rawValue, forKey: "orientation")
    Utils.AppUtility.lockOrientation(.portrait)
    initButtons()
    lvMain.isUserInteractionEnabled = true
    self.view.bringSubview(toFront: lvMain)
    timer = Timer.scheduledTimer(timeInterval: 0.3, target: self,   selector: (#selector(nextAnswer)), userInfo: nil, repeats: true)
}


func nextAnswer(){
    shownAnswers.append(answers[arrayIndex])
    arrayIndex += 1
    lvMain.reloadData()
    lvMain.layoutIfNeeded()
    let indexPath = IndexPath(item: shownAnswers.count - 1, section: 0)
    self.lvMain.scrollToRow(at: indexPath, at: UITableViewScrollPosition.bottom, animated: true)
    if arrayIndex == answers.count {
        timer.invalidate()
    }
}
因此,tableView可以很好地填充,但不会滚动。我试着不逐个填充,但没有效果

没有任何视图阻止它-您可以通过屏幕截图上的层次结构看到它。
请给我一些建议

这是为了什么:self.view.bringSubview(toFront:lvMain)?可能它阻止了用户与表视图的交互。而且,你说你每秒钟都在更新它。您是否尝试禁用更新以查看是否存在问题?@u84six是的,我提到过-我试图不立即更新整个列表-它仍然没有滚动。bringSubview(toFront:lvMain)是解决这个问题的一个尝试,因为我已经读到了不可滚动的tableView的解决方案。但它没有帮助你的计时器是失效还是继续运行?这可能是由于频繁触发计时器造成的。@HAK它在上面的代码中,每秒1次,并且在主线程中无效地运行scrollToRow。