Ios 带有原型的UITableView不';卷轴
我真的不明白为什么它不能用手指滚动。我没有用模拟器,它是真正的设备 以下是故事板的截图: 此外,它还检查了用户交互 另外,我在dataSource和delegate中连接到我的VC。 tableView将插座作为lvMain: 代码如下:我每秒添加一次结果,以便逐个填充tableView: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
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。