Swift:如何从xib文件制作自定义tableview? 'NSInternalInconsistencyException',原因:'必须转换自动调整掩码?

时间:2016-08-26 00:06:08

标签: ios swift uitableview

好吧,我需要知道正确的方法 - 我使用storyboard和普通的VC类文件使用自定义单元格制作自定义表格视图,但是现在我需要使用链接到xib文件的ViewController类来完成它我失败了。

我遇到了几个不同的错误,但现在我已经离开了

由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'必须将自动调整掩码转换为约束以使_setHostsLayoutEngine:YES。'

这就是我所做的 - 我用xib文件创建了我的类,并将tableview拖入其中。我连接了tableview并在我的课程中添加了所有需要的功能。还设置委托和数据源 -

class EventsAddedToViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet var tableview: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        tableview.delegate = self
        tableview.dataSource = self
        tableview.registerNib(UINib(nibName: "EventsAddedCell", bundle: nil), forCellReuseIdentifier: "addedCell")
    }
    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        return  screenSize.height * (61/screenSize.height) //has to be same as bottom tab - 61
    }

    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        // #warning Incomplete implementation, RETURN NUMBER OF SECTIONS
        return 1
    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, RETURN THE NUMBER OF ROWS
//        if names.count < dates.count {
//            return names.count
//        } else {
//            return dates.count
//        }
        return 100
    }

    //cell work IMPORTANT
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCellWithIdentifier("addedCell", forIndexPath: indexPath) as! EventsAddedCell

        cell.separatorInset = UIEdgeInsetsMake(0, 0, cell.frame.size.width, 0)
        if (cell.respondsToSelector("preservesSuperviewLayoutMargins")){
            cell.layoutMargins = UIEdgeInsetsZero
            cell.preservesSuperviewLayoutMargins = false
        }


        return cell
    }

    func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
        return true
    }

同样,这是用我的类创建的xib文件。

然后我需要在tableview中添加一个自定义单元格,所以我尝试将一个单元格拖到我的tableview中,但它不会让我。然后我查看How to load Custom cell (Xib) in UITableview using Swift并为单元格创建了一个单独的xib和类文件:

enter image description here

我给了它正确的重用标识符“addedCell”,我在整个VC文件中引用了它。

我收到SIGABRT错误。我在这里做错了什么?

0 个答案:

没有答案