Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 是否根据父图幅限制图像拖动?_Ios_Swift_Uiimage_Screenshot_Snapshot - Fatal编程技术网

Ios 是否根据父图幅限制图像拖动?

Ios 是否根据父图幅限制图像拖动?,ios,swift,uiimage,screenshot,snapshot,Ios,Swift,Uiimage,Screenshot,Snapshot,我的代码基于以下问题: panaction和pinaction是平移和锁定手势的动作,showEditedImage仅使用其父视图作为裁剪区域从图像中获取屏幕截图 问题-我不想限制拖动和调整其父视图边界的图像大小。因此,例如UIImageView应该允许x class ViewController: UIViewController { @IBOutlet weak var preview: UIImageView! @IBOutlet weak var containerVi

我的代码基于以下问题:

panaction
pinaction
是平移和锁定手势的动作,
showEditedImage
仅使用其父视图作为裁剪区域从图像中获取屏幕截图

问题-我不想限制拖动和调整其父视图边界的图像大小。因此,例如
UIImageView
应该允许
x
class ViewController: UIViewController {
    @IBOutlet weak var preview: UIImageView!
    @IBOutlet weak var containerView: UIView!
    @IBOutlet weak var transformedImg: UIImageView!

    //save edited image
    var resultsImg : UIImage!

    override func viewDidLoad() {
        resultsImg = UIImage()
        
        super.viewDidLoad()
        let image = UIImage(named: "image-analysis")!
        let ratio = image.size.width / image.size.height
        if containerView.frame.width > containerView.frame.height {
            let newHeight = containerView.frame.width / ratio
            preview.frame.size = CGSize(width: containerView.frame.width, height: newHeight)
        } else {
            let newWidth = containerView.frame.height * ratio
            preview.frame.size = CGSize(width: newWidth, height: containerView.frame.height)
        }
        preview.image = image
    }


    @IBAction func showEditedImage(_ sender: Any) {
        UIGraphicsBeginImageContextWithOptions(containerView.bounds.size, false, UIScreen.main.scale)
        containerView.drawHierarchy(in: containerView.bounds, afterScreenUpdates: true)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        transformedImg.image = image
    }

    @IBAction func pinchaction(_ sender: UIPinchGestureRecognizer) {
        preview.transform = preview.transform.scaledBy(x: sender.scale, y: sender.scale)
        sender.scale = 1
    }

    @IBAction func panaction(_ sender: UIPanGestureRecognizer) {
        let point = sender.translation(in: self.containerView)
        preview.transform = preview.transform.translatedBy(x: point.x, y: point.y)
        sender.setTranslation(CGPoint.zero, in: self.containerView)
    }
}