Swift 确定UIImageView中的图像帧
我试图确定UIImageView中图像的帧。下面是我的尝试。我用蓝色勾勒出了图像的边界。可以看出,边框似乎与图像不匹配。有人能帮忙吗 UIImageView的自动布局是否影响结果Swift 确定UIImageView中的图像帧,swift,Swift,我试图确定UIImageView中图像的帧。下面是我的尝试。我用蓝色勾勒出了图像的边界。可以看出,边框似乎与图像不匹配。有人能帮忙吗 UIImageView的自动布局是否影响结果 var imageView: UIImageView! var margin: UILayoutGuide! let imgViewFrame = CGRect.init(x: 0, y: 0, width: margin.layoutFrame.width, height: margin.layoutFrame
var imageView: UIImageView!
var margin: UILayoutGuide!
let imgViewFrame = CGRect.init(x: 0, y: 0, width: margin.layoutFrame.width, height: margin.layoutFrame.height)
let imgView = UIImageView.init(frame: imgViewFrame)
imgView.contentMode = .scaleAspectFit
imgView.backgroundColor = UIColor.lightGray
view.addSubview(imgView)
imgView.translatesAutoresizingMaskIntoConstraints = false
imgView.topAnchor.constraint(equalTo: margin.topAnchor).isActive = true
imgView.bottomAnchor.constraint(equalTo: margin.bottomAnchor).isActive = true
imgView.leadingAnchor.constraint(equalTo: margin.leadingAnchor).isActive = true
imgView.trailingAnchor.constraint(equalTo: margin.trailingAnchor).isActive = true
let image = UIImage.init(named: imageName)
imgView.image = image
imageView = imgView
//Test
let imageRect = AVMakeRect(aspectRatio: imgView.image!.size, insideRect: self.imageView.frame)
let imageBorderCheckView = UIView.init(frame: imageRect)
imageBorderCheckView.layer.borderWidth = 3
imageBorderCheckView.layer.borderColor = UIColor.blue.cgColor
view.addSubview(imageBorderCheckView)
在此处使用图像边框
let imageRect = AVMakeRect(aspectRatio: imgView.image!.size, insideRect: self.imageView.frame)
在viewdilayoutsubviews
/viewdirebeen
/viewdirebeen
override func viewDidAppear(_ animated:Bool) {
super.viewDidAppear(animated)
//Test
let imageRect = AVMakeRect(aspectRatio: imgView.image!.size, insideRect: self.imageView.frame)
let imageBorderCheckView = UIView.init(frame: imageRect)
imageBorderCheckView.layer.borderWidth = 3
imageBorderCheckView.layer.borderColor = UIColor.blue.cgColor
view.addSubview(imageBorderCheckView)
}
在这里使用图像框
let imageRect = AVMakeRect(aspectRatio: imgView.image!.size, insideRect: self.imageView.frame)
在viewdilayoutsubviews
/viewdirebeen
/viewdirebeen
override func viewDidAppear(_ animated:Bool) {
super.viewDidAppear(animated)
//Test
let imageRect = AVMakeRect(aspectRatio: imgView.image!.size, insideRect: self.imageView.frame)
let imageBorderCheckView = UIView.init(frame: imageRect)
imageBorderCheckView.layer.borderWidth = 3
imageBorderCheckView.layer.borderColor = UIColor.blue.cgColor
view.addSubview(imageBorderCheckView)
}
怀疑这一行
let imageRect=AVMakeRect(aspectRatio:imgView.image!.size,inside:self.imageView.frame)
试图在它前面打印self.imageView.frame
?你能将大纲代码复制到viewdidisbeen
吗try@Sh_Khan答对 了你说得对。非常感谢!怀疑这一行let imageRect=AVMakeRect(aspectRatio:imgView.image!.size,inside:self.imageView.frame)
试图在它前面打印self.imageView.frame
?你能将大纲代码复制到viewdidisbeen
吗try@Sh_Khan答对 了你说得对。非常感谢!