结束动作滑块针对的是滑块完成编辑的时间

问题描述

我希望我的快速代码在完成对滑块的操作后结束滑块与对象pg的连接。因此,现在当您单击imageview pg然后使用滑块时,滑块将与imageview的大小相关。我想将iamgeview的大小控制为喜欢。在pg上按-然后在滑块上按并拖动滑块以达到所需的大小-当不触摸滑块时,您必须先触摸pg才能更改pg的大小。我在下面有一个gif,可以向您显示正在发生的事情。

enter image description here

import UIKit


var counter = 0 
class ViewController: UIViewController {
    var image1Width2: NSLayoutConstraint!
    var image1Height2: NSLayoutConstraint!
    
    
    
    
    
    
    var currentView: UIView?
    
    
    
    var greenTransition: CGAffineTransform?
    
    
    
    
    
    var slider = UiSlider()
    var PG = UIImageView()
    
    
    var btn = UIButton()
    
    var jake  = false
    var btnCouter = 0
    
    
    
    
    
    var g2 = UIPanGestureRecognizer()
    
    
    
    
    var grid = UIImageView()
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        slider.value = 0.5
        
        
        PG.isUserInteractionEnabled = true
        
        
        
        PG.image = UIImage(named: "c")
        
        
        
        
        g2 = UIPanGestureRecognizer(target: self,action: #selector(ViewController.g1Method))
        PG.addGestureRecognizer(g2)
        
        
        
        
        
        
        
        
        
        
        [PG,slider,btn,grid
            
            ].forEach {
                
                view.addSubview($0)
                $0.translatesAutoresizingMaskIntoConstraints = false
                
        }
        
        
        
        
        let percent1 = self.view.frame.height * 0.1
        
        
        //image12
        image1Width2 =  PG.widthAnchor.constraint(equalTo:  view.widthAnchor,multiplier:  0.06)
        image1Height2 =  PG.heightAnchor.constraint(equalTo:  view.heightAnchor,multiplier:  0.06)
        
        
        
        
        
        
        
        NSLayoutConstraint.activate([
            
            
            
            slider.bottomAnchor.constraint(equalTo: view.bottomAnchor),slider.heightAnchor.constraint(equalTo: view.heightAnchor,multiplier: 0.06,constant: 0),slider.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier: 1,slider.leadingAnchor.constraint(equalTo: view.leadingAnchor,constant : 0),PG.topAnchor.constraint(equalTo: view.topAnchor,constant : percent1),image1Width2,image1Height2,PG.leadingAnchor.constraint(equalTo: view.leadingAnchor),])
        
        
        
        
        
        
        slider.addTarget(self,action: #selector(hhh),for: .allEvents)
        

        
    }
    
    
    
    @objc func hhh() {
        
        
        
        
        
        if jake == true {
            
            if btnCouter == 1{
                image1Width2.constant = CGFloat(slider.value) * view.frame.size.width * 0.10
                image1Height2.constant = CGFloat(slider.value) * view.frame.size.height * 0.10
                
            }
            
            
            
        }
            
        else{
            image1Width2.constant = CGFloat(0.5) * view.frame.size.width * 0.10
            image1Height2.constant = CGFloat(0.5) * view.frame.size.height * 0.10
            
        }
        

        
        
    }
    
    
    
    
    
    
    
    @objc func handleTapGestured(_ gesture: UIPanGestureRecognizer) {
        currentView = gesture.view
    }
    
    @objc func g1Method(_ sender: UIPanGestureRecognizer){
        
        jake = true
        btnCouter = 1
        if jake == true {
            guard let child = sender.view else{return}
            let transitionPoint = sender.translation(in: self.view)
            let newTransition = CGAffineTransform(translationX: transitionPoint.x,y: transitionPoint.y)
            
            
            
            switch sender.state {
                
            case .ended,.cancelled:// on End
                if let existing = greenTransition {
                    greenTransition = newTransition.concatenating(existing)
                } else {
                    greenTransition = newTransition
                }
                
            default://on change and other states
                if let existing = greenTransition {
                    child.transform = newTransition
                        .concatenating(existing)
                } else {
                    child.transform = newTransition
                }
                
            }
            self.view.layoutIfNeeded()
        }
        
        
        
        
        
        
        
    }
    

    
    
    override func touchesBegan(_ touches: Set<UITouch>,with event: UIEvent?) {
        self.view.endEditing(true)
    }
    
    
    
    
    
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...