Ios 添加子视图不起作用

Ios 添加子视图不起作用,ios,xcode,swift,uiview,popup,Ios,Xcode,Swift,Uiview,Popup,我正在尝试创建一个弹出视图 给你 let popOver = UIView() popOver.hidden = true popOver.frame = CGRectMake(self.view.frame.width / 2 - 150, self.view.frame.height / 2 - 150, 250, 250) popOver.backgroundColor = UIColor.whiteColor() let lbl = U

我正在尝试创建一个弹出视图

给你

let popOver = UIView()
popOver.hidden = true
        popOver.frame = CGRectMake(self.view.frame.width / 2 - 150, self.view.frame.height / 2 - 150, 250, 250)

        popOver.backgroundColor = UIColor.whiteColor()

        let lbl = UILabel()
        lbl.text = "blablabla"
        lbl.backgroundColor = UIColor.redColor()
        lbl.textColor = UIColor.yellowColor()
        popOver.addSubview(lbl)
        lbl.center = popOver.center
        popOver.bringSubviewToFront(lbl)


        self.view.addSubview(popOver)
        popOver.center = self.view.center
        popOver.layer.cornerRadius = 9

        UIView.animateWithDuration(2.0, animations: {
            self.popOver.hidden = false
        })

    }
一切正常,只是现在每当我尝试执行我的应用程序时都会显示标签。我只看到白色的框架:


我的错误是什么?

你的标签位置错了

let lbl = UILabel()

lbl.frame = CGRectMake(0, 0, 25, 25)

lbl.text = "blablabla"
lbl.backgroundColor = UIColor.redColor()
lbl.textColor = UIColor.yellowColor()
popOver.addSubview(lbl)

//lbl.center = popOver.center
lbl.center = CGPointMake(popOver.frame.width / 2, popOver.frame.height/2)

你的标签位置错了

let lbl = UILabel()

lbl.frame = CGRectMake(0, 0, 25, 25)

lbl.text = "blablabla"
lbl.backgroundColor = UIColor.redColor()
lbl.textColor = UIColor.yellowColor()
popOver.addSubview(lbl)

//lbl.center = popOver.center
lbl.center = CGPointMake(popOver.frame.width / 2, popOver.frame.height/2)
试试这个

let popOver = UIView()
    popOver.hidden = true
    popOver.frame = CGRectMake(self.view.frame.width / 2 - 150, self.view.frame.height / 2 - 150, 250, 250)

    popOver.backgroundColor = UIColor.whiteColor()
    popOver.center = self.view.center
    popOver.layer.cornerRadius = 9
    self.view.addSubview(popOver)

    let lbl = UILabel()
    lbl.text = "blablabla"
    lbl.backgroundColor = UIColor.redColor()
    lbl.textColor = UIColor.yellowColor()
    lbl.frame = CGRectMake((popOver.frame.size.width / 2)-50,  (popOver.frame.size.height / 2)-50, 100,100)
    //lbl.center = popOver.center
    popOver.addSubview(lbl)
    popOver.bringSubviewToFront(lbl)


    UIView.animateWithDuration(1.0, animations: {
        popOver.hidden = false
    })
输出是

试试这个

let popOver = UIView()
    popOver.hidden = true
    popOver.frame = CGRectMake(self.view.frame.width / 2 - 150, self.view.frame.height / 2 - 150, 250, 250)

    popOver.backgroundColor = UIColor.whiteColor()
    popOver.center = self.view.center
    popOver.layer.cornerRadius = 9
    self.view.addSubview(popOver)

    let lbl = UILabel()
    lbl.text = "blablabla"
    lbl.backgroundColor = UIColor.redColor()
    lbl.textColor = UIColor.yellowColor()
    lbl.frame = CGRectMake((popOver.frame.size.width / 2)-50,  (popOver.frame.size.height / 2)-50, 100,100)
    //lbl.center = popOver.center
    popOver.addSubview(lbl)
    popOver.bringSubviewToFront(lbl)


    UIView.animateWithDuration(1.0, animations: {
        popOver.hidden = false
    })
输出是


为什么?同样的效果与您的example@HrenoHrenovich . 请更改
lbl.center
作为我的答案。@HrenoHrenovich。你试过我的答案了吗
popOver.center
与我说的“CGPointMake(popOver.frame.width/2,popOver.frame.height/2)”不同-是的。我忘了框架。Thanks@HrenoHrenovich. 没关系。试着帮你。为什么?同样的效果与您的example@HrenoHrenovich . 请更改
lbl.center
作为我的答案。@HrenoHrenovich。你试过我的答案了吗
popOver.center
与我说的“CGPointMake(popOver.frame.width/2,popOver.frame.height/2)”不同-是的。我忘了框架。Thanks@HrenoHrenovich. 没关系。试着帮你。ZZ您是否尝试显式设置uilabel的框架?谢谢,我没有设置框架。就是这样,您是否尝试显式设置uilabel的框架?谢谢,我没有设置框架。就这样