1 year ago

#213838

test-img

LawlessLLC

UISlider will not move if two transform are made

I have a UISlider that was implemented through Storyboard. I added a Keypath layer.transform.rotation.z with a value of 1.57 in order to make the UISlider vertical.

I also have a MoveRight UIButton that controls 3 elements (Two UIImageViews and One UISlider) to move in unison. The code for the transform is shown below

      @IBAction func MoveRight(_ sender: Any) {
    // Used to Show Reset Button for Right
    ResetOrigin.isHidden = false
    let yPosition1 = myslider.frame.origin.y
    let yPosition2 = ImageView.frame.origin.y
    let yPosition3 = ImageView2.frame.origin.y
    
    UIView.animate(withDuration: 0.0, delay: 0.0, options: [], animations: {
        self.myslider.transform = CGAffineTransform(translationX: 0.001, y: yPosition1)
        self.ImageView.transform = CGAffineTransform(translationX: 0.001, y: yPosition2)
        self.ImageView2.transform = CGAffineTransform(translationX: 0.001, y: yPosition3)
    }, completion: nil)
    
}

When the code is like this the movement works great although the UISlider is no longer Vertical after the transform. And when I try to add this line of code to the animation

                self.myslider.transform = CGAffineTransform(rotationAngle: (CGFloat.pi / 2))

The slider will no longer move while the other 2 Elements are affected by the transform. I tried doing a separate .animate to see if that would resolve the problem but the same result is given. Any ideas on how to solve this issue would be greatly appreciated

swift5

uislider

cgaffinetransform

0 Answers

Your Answer

Accepted video resources