为不同的设备获得相同的uibutton中心值

时间:2018-04-24 03:46:39

标签: ios swift uibutton

当我尝试打印 btnTwo.center 时,它给我(132.0,20.0),它根据设备没有变化。我尝试使用iPhone SE,iPhone 8,iPhone 8Plus等。 我甚至尝试了下面的方法仍然是相同的,它似乎没有采取设备维度,它采取默认的xibs维度。

    viewDidAppear
    viewWillLayoutSubviews
    viewWillAppear

编辑 - AutoLayout工作正常,按钮正在屏幕上正确排列,只是中心保持在同一位置,它没有相应改变。images from iPhone 8plus and iPhone SE

例如代码 -

    override func viewDidAppear(_ animated: Bool) {
    signUpProgressView = SignUpProgressView.initSignUpProgressView(X: 10.0, Y: 50.0)
    self.view.addSubview(signUpProgressView!)
    signUpProgressView?.drawline()
}






public class func initSignUpProgressView(X vX:CGFloat, Y vY:CGFloat) -> SignUpProgressView{
    let bundle:Bundle = Bundle(for: self.classForCoder())
    let signUpProgressView:SignUpProgressView = bundle.loadNibNamed("SignUpProgressView", owner: self, options: nil)?.last as! SignUpProgressView
    signUpProgressView.viewInitYCord = vY
    signUpProgressView.viewInitXCord = vX
    signUpProgressView.frame = CGRect(x: vX, y: vY, width: UIScreen.main.bounds.size.width - 20, height: 200)
    return signUpProgressView
}

func drawline(){

    let animatedLinelayer = AnimatedLineLayer(startPoint: btnOne.center, endPoint: btnTwo.center)

    print(btnTwo.center)
    layer.insertSublayer(animatedLinelayer, at: 0)
    animatedLinelayer.animateStrokeWithColor(color: UIColor.brown)
}

1 个答案:

答案 0 :(得分:0)

我不确定你在计算什么,但你可以使用下面的代码计算数值..

您可以在不同的设备上比较这些内容,并了解该怎么做。您可以计算按钮的X,Y值

print("button frame", btnTwo.frame)
print("button bounds", btnTwo.bounds)
print("button center", btnTwo.center)