gpt4 book ai didi

ios - 手势识别器值重置

转载 作者:行者123 更新时间:2023-11-29 00:12:00 24 4
gpt4 key购买 nike

我有一个带有简单图像的 View ,其中添加了旋转和捏合手势识别器(从对象库添加)。我使用了 2 个基本的简单线条和 2 个 IBAction 来旋转和缩放图像。一切正常,但问题是:每个手势都会重置另一个值。如果我旋转图像并在捏合后,旋转值恢复正常,反之亦然。我想保留旋转和缩放的值。我希望清楚这个问题。谢谢大家。这里的代码:

//  ImageController.swift
// SpImage
//
// Created by Ronny Westwood on 06/09/17.
// Copyright © 2017 RW2017. All rights reserved.
//

import UIKit

class ImageController: UIViewController {

@IBOutlet weak var Image: UIImageView!

/// IMAGE OUTLET

override func viewDidLoad() {
super.viewDidLoad()
}

@IBAction func rotationImage(_ sender: UIRotationGestureRecognizer) {
Image.transform = view.transform.rotated(by: sender.rotation)
}

@IBAction func zoomImage(_ sender: UIPinchGestureRecognizer) {
Image.transform = CGAffineTransform(scaleX: sender.scale, y: sender.scale)
}

/// IMAGE ROTATION & IMAGE ZOOM

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}

这里的观点: View

最佳答案

我用这段代码解决了这个问题。一切正常

class ImageController: UIViewController, UIGestureRecognizerDelegate {

var delegate: UIGestureRecognizerDelegate?

@IBOutlet weak var Image: UIImageView!

override func viewDidLoad()
{
super.viewDidLoad()
}

@IBAction func rotationImage(_ gestureRecognizer : UIRotationGestureRecognizer)
{
if gestureRecognizer.state == .began || gestureRecognizer.state == .changed
{
gestureRecognizer.view?.transform = (gestureRecognizer.view?.transform.rotated(by: gestureRecognizer.rotation))!
gestureRecognizer.rotation = 0.0;
}
}

@IBAction func zoomImage(_ gestureRecognizer : UIPinchGestureRecognizer)
{
if gestureRecognizer.state == .began || gestureRecognizer.state == .changed
{
gestureRecognizer.view?.transform = (gestureRecognizer.view?.transform.scaledBy(x: gestureRecognizer.scale, y: gestureRecognizer.scale))!
gestureRecognizer.scale = 1.0;
}
}

/// IMAGE ROTATION & IMAGE SCALE

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool
{
return true
}

/// ALLOW SIMULTANEOUS GESTURES DELEGATE

override func didReceiveMemoryWarning()
{
super.didReceiveMemoryWarning()
}
}

(是的,是来自 AppleDeveloper 的有关 GestureRecognizer 的代码)感谢大家。代码上的另一 block 砖。

关于ios - 手势识别器值重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46244301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com