没有帖子时以编程方式显示UIView

时间:2016-12-02 11:56:00

标签: ios swift uitableview uiview

我想展示一个UIView,里面有一个标签,上面写着:"你没有帖子",update.count == 0时。我尝试这样做但是当我尝试时应用程序崩溃了。

我做错了什么?这是我的代码:

let noPostView: UIView = {
        let iv = UIView()
        iv.backgroundColor = UIColor.whiteColor()

        //iv.image = UIImage(named: "iphoneSample")
        //iv.clipsToBounds = true
        return iv
    }()

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if updates.count == 0 {
            noPostView.anchorToTop(tableView.topAnchor, left: tableView.leftAnchor, bottom: tableView.bottomAnchor, right: tableView.rightAnchor)
            noPostView.heightAnchor.constraintEqualToConstant(100).active = true
            noPostView.widthAnchor.constraintEqualToConstant(100).active = true


            tableView.addSubview(noPostView)
        }
        return updates.count
    }

在更多内容中出现此错误:

*** Terminating app due to uncaught exception 'NSGenericException', reason: 'Unable to activate constraint with anchors <NSLayoutYAxisAnchor:0x61000067f280 "UIView:0x7fdbcbd21490.top"> and <NSLayoutYAxisAnchor:0x610000660a40 "UITableView:0x7fdbcd86a600.top"> because they have no common ancestor.  Does the constraint or its anchors reference items in different view hierarchies?  That's illegal.'

1 个答案:

答案 0 :(得分:1)

tableView.addSubview(noPostView)置于约束之上。

如果您正在限制所有4方,你也不应该需要heightAnchorwidthAnchor吗?

tableView.addSubview(noPostView)

noPostView.anchorToTop(tableView.topAnchor, left: tableView.leftAnchor, bottom: tableView.bottomAnchor, right: tableView.rightAnchor)