Swift 3 - 如何比较UIImage的宽度和高度?

时间:2016-12-11 22:07:18

标签: ios swift uiimage

我需要比较UIImage的宽度和高度,当宽度大于高度时,我会添加边框。下面是我在可可触摸类上的代码

override func viewDidLoad() {

    let x = p2Image.image?.size.width
    let y = p2Image.image?.size.height


    if x > y{
        p2Border.backgroundColor = UIColor.black


    }else{

        p2Border.backgroundColor = UIColor.clear

    }
}

提示错误二进制运算符>不能申请两个CGFloats操作数,请帮帮我..

1 个答案:

答案 0 :(得分:3)

由于可选链接,您的xy是可选项,因此您需要打开它们。 可选绑定是一种安全的方法:

override func viewDidLoad() {

    if let x = p2Image.image?.size.width,
       let y = p2Image.image?.size.height {

        if x > y {
            p2Border.backgroundColor = .black                
        } else {                
            p2Border.backgroundColor = .clear                
        }
    }
}

如果p2Image.imagenil,则会安全无效。

如果您想在.clear p2Image.image时分配nil,那么您可以将可选绑定x > y比较结合起来,就像这样:

override func viewDidLoad() {

    if let x = p2Image.image?.size.width,
       let y = p2Image.image?.size.height,
       x > y {

        p2Border.backgroundColor = .black
    } else {
        p2Border.backgroundColor = .clear
    }
}