以编程方式设置框架CGReact x在中间位置,如centerXAnchor NSLayoutConstraint

时间:2018-08-10 09:59:46

标签: ios swift uiimage frame

我正在创建一个简单的应用,该应用通过使用图像的frame进行计算来将图像设置为圆形。

在这里我声明图像变量:

lazy var imageUserDetailProfileView: UIImageView = {

    let imageView = UIImageView()


    imageView.contentMode = .scaleAspectFill
    imageView.layer.borderWidth = 1
    imageView.image = UIImage(named: "profile-icon")
    imageView.layer.borderColor = UIColor(red:0.00, green:0.50, blue:0.00, alpha:1.0).cgColor
    imageView.clipsToBounds = true

    return imageView


}()

我在这里使图像的框架宽度和高度变为圆形

imageUserDetailProfileView.frame = CGRect(x: view.frame.midX, y: 20,width: 100, height: 100)
imageUserDetailProfileView.layer.cornerRadius = imageUserDetailProfileView.frame.height/2

现在,我希望图像应该像使用NSLayoutConstraint方法那样的centerXAnchor一样留在屏幕中间。

如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

let midX = view.frame.size.width / 2
let midY = view.frame.size.height / 2

答案 1 :(得分:1)

尝试此代码。 在任何视图的中心设置图像的自定义方法。只需调用方法并传递图像和视图即可。根据用途定制。 雨燕4

  func setImageInCenterOfView(image:UIImage,view:UIView) {

    let imageWidth:CGFloat = 100
    let myImageView = UIImageView.init(frame: CGRect.init(x: (view.frame.size.width/2)-imageWidth/2, y: (view.frame.size.height/2)-imageWidth/2, width: imageWidth, height: imageWidth))
    myImageView.clipsToBounds = true
    myImageView.layer.cornerRadius = myImageView.frame.size.height/2
    myImageView.image = image
    view.addSubview(myImageView)
    view.layoutIfNeeded()
  }