滚动单元格时,UITableView不会滚动

时间:2017-01-12 11:11:13

标签: ios iphone swift xcode uitableview

我在UITableView的{​​{1}}中创建了UIViewController并创建了自定义storyboard课程。现在,当我运行我的项目时,

  1. 当我触摸任何单元格并向上/向下移动时,它不会滚动。

  2. 但是,如果我开始使用tableViewCell的任一端(几乎是左边的15px)滚动,它会滚动。

  3. 我尝试创建另一个新的tableView,但仍无效。

    我尝试创建一个tableViewController,但仍无效。

    然后我认为代码不是问题的原因。 使用Xcode 8.2.1

    以下是我的代码工作:

    类文件

    UItableViewCell

    这是我的cellClass :(自定义单元格)

    struct Quote {
        var text: String
    }
    
    class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    
        @IBOutlet var tableView: UITableView?
    
        let cellIdentifier = "cell"
    
        // Array of strings for the tableView
    
        var tableData = [Quote(text: "zadz ad azd azds fsd gdsfsd"), Quote(text: "zakd gqsl jdwld bslf bs ldgis uqh dm sd gsql id hsqdl sgqhmd osq bd zao mos qd"), Quote(text: "azdhsqdl sb ljd ghdlsq h ij dgsqlim dhsqihdùa dbz ai ljsm oqjdvl isq dbvksqjld"), Quote(text: "dsqb jhd gs qdgsq dgsq u hdgs qli hd gsql i dgsq li dhs qij dhlqs dqsdsd.")]
    
        override func viewDidLoad() {
    
            super.viewDidLoad()
    
            self.tableView?.register(UITableViewCell.self, forCellReuseIdentifier: self.cellIdentifier)
    
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
        }
    
        func numberOfSections(in tableView: UITableView) -> Int {
            return 1
        }
    
        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    
            // Return number of rows in table
    
            return tableData.count
        }
    
        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    
            // Create Resusable Cell, get row string from tableData
    
            let cell = tableView.dequeueReusableCell(withIdentifier: self.cellIdentifier)! as! cellClass
    
            let row = indexPath.row
    
            // Set the labels in the custom cell
            cell.mainText.text = tableData[row].text
    
            return cell
        }
    
        func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    
            // Do what you want here
    
            let selectValue = self.tableData[indexPath.row]
    
            print("You selected row \(indexPath.row) and the string is \(selectValue)")
        }  
    }
    

    class cellClass: UITableViewCell { @IBOutlet weak var mainText: UILabel! override func awakeFromNib() { super.awakeFromNib() // Initialization code } override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) // Configure the view for the selected state } }

    的故事板层次结构

    main.storyboard

3 个答案:

答案 0 :(得分:1)

你可能会遇到一些x-code问题,因为通常它永远不会发生,我运行你的项目它正常工作,因为它通常有效。

以下是我所做的代码工作。

我没有像你那样采用阵列结构,我只是采用简单的阵列。

我的数组是

arrayData = ["One", "Two", "three", "four"]
下面的

cellForRow

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell : cellClass = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! cellClass
    cell.lblstates.text = arrayData[indexPath.row]
    return cell
}

如果您遇到任何问题,请告诉我。

答案 1 :(得分:0)

检查用户交互是否在故事板中启用了对单元格的启用检查

答案 2 :(得分:0)

已解决:我不得不再次卸载并安装Xcode ..