繁体   English   中英

Swift:UITableView不会使用reloadData更新

[英]Swift: UITableView does not update with reloadData

我有一个UITableView子视图,该子视图应显示游戏中心名称,但在调用reloadData()时不会更新。

启动tableView和reloadData函数的代码如下:

import UIKit
import QuartzCore
import GameKit

class LobbyViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

var lobbyView: UITableView!
var lobbyTimer = NSTimer()
var bStartOfTimer: Bool = false
var timerTextView: UITextView = UITextView()


//TABLE VIEW
func initTableView() {
    lobbyView = UITableView(frame: CGRectMake(20, 150, self.view.frame.width - 40, 2*self.view.frame.height/3), style: UITableViewStyle.Plain)
    lobbyView.layer.cornerRadius = 10
    lobbyView.registerClass(LobbyViewCell.self, forCellReuseIdentifier: "cell")

    //lobbyView.frame = CGRectMake(20, self.view.frame.height/3, self.view.frame.width - 40, self.view.frame.height/3)

    lobbyView.delegate = self
    lobbyView.dataSource = self
}

override func viewDidLoad() {

    super.viewDidLoad()

    var background = UIView(frame: self.view.frame)
    background.backgroundColor = UIColor(netHex: cs_navy)
    self.view.addSubview(background)

    addText()
    lobbyTimer = NSTimer.scheduledTimerWithTimeInterval(0.02, target: self, selector: Selector("updateTimer"), userInfo: nil, repeats: true)
    initTableView()

    self.view.addSubview(lobbyView)
}

    func update(){
    if (lobbyView != nil) {
        self.lobbyView.reloadData()
    }
}

我具有所有其他必要的功能,并且reloadData()一直有效,直到将tableView更改为子视图为止。 数据源可能不正确吗?

我不确定以前的情况是什么,但我假设您的控制器是UITableViewController 在这种情况下,控制器的主视图是UITableView 但是,当您切换到UIViewController并以编程方式添加UITableView ,需要确保UITableView位于视图层次结构的最前面。 尝试使用

self.view.insertSubview(lobbyView, 0)

代替

self.view.addSubview(lobbyView)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM