【问题标题】:issue after zooming i want full image not only zoom part of image缩放后的问题我想要完整的图像不仅缩放图像的一部分
【发布时间】:2026-01-23 10:25:02
【问题描述】:

我在UIImageView 上放了一个别针,因为首先我要买一个UIView。在UIView 内部我有UIScrollview 用于缩放功能,然后在UIScrollview 我有UIImageView 用于我缩放功能正常工作。

UIView 
    UIScrollView
         UIImageView

但是在缩放图像之后,我想要完整的图像不仅可以缩放图像的一部分,而且我正在使用UIView 将图钉图像和主图像组合在一个图像中。

我已经尝试了一些代码让我给你看

如您所见,我正在获取主UIView 的帧,该帧被转换为图像,而不是将该帧传递给另一个ViewController,然后我将其设置为UIView,但无法设置我检查了我是否按预期获得了完美的框架,但我仍然只能缩放图像的一部分。

正如我在下面提到我的代码,我不清楚为什么无法设置框架,所以请有人帮助我

@IBAction func btnTapped(_ sender: UIButton) {
        let VC = self.storyboard?.instantiateViewController(withIdentifier: "ThirdViewController") as! ThirdViewController
        let image = conImgView.getImage()
        VC.image = image
        if let frame = conImgView.superview?.convert(conImgView.frame, to: nil) {
            print(frame)
            VC.frame1 = frame
        }
        self.present(VC, animated: true, completion: nil)
    }

我想要缩放后的完整图像,不仅是放大的部分,当我在按钮单击时重定向到另一个 ViewController 时,我想要完整图像。

【问题讨论】:

  • 请大家给点建议
  • 您可以在用户进入第一个屏幕后立即截屏,并将截屏图像传递到下一个视图。
  • 是的,当我缩放时,第一张图像是正常的,没有缩放,然后到下一个 VC,图像我正在缩放图像我想要完整的图像,没有缩放
  • 试试我的解决方案并告诉我它是否有效。

标签: ios swift uiview uiscrollview uiimageview


【解决方案1】:

如果要将图像设置为完全显示意味着将contentMode 设置为scaleAspectFit

let yourImageView : UIImageView = UIImageView()
yourImageView.frame = customFrame
yourImageView.contentMode = .scaleAspectFit

【讨论】:

  • 仍然无法正常工作,我只得到图像上的缩放部分
  • 将以下行替换 let image = conImgView.getImage() 到 conImgView.image
  • 不,因为获取图像是我的函数,我从中将 UIView 转换为 Uiimage conImgView 是我的 UIVIew