McDonal_11 McDonal_11 - 1 year ago 109
Swift Question

Unable to increase height and width of UIView when using CGAffineTransformMakeRotation

I am rotating

by using
Values. If slider values either get increase or decrease, according to that rotation happen. My code is working fine.

Rotation Action:

@IBAction func sliderToolAction(sender: UISlider) {

if sender.tag == 1
let radians = CGFloat(sender.value) * 22 / (7 * 180)
rotatingView.transform = CGAffineTransformMakeRotation(radians)


Rotating Frame: (100, 20, 103.9990, 127.8889)

After rotating that
, I tried to increase
of that view, its not working.

Resize Action

@IBAction func sliderToolAction(sender: UISlider) {

if sender.tag == 2
rotatingView.frame.size.width = CGFloat(sender.value) * viewWidth
rotatingView.frame.size.height = CGFloat(sender.value) * viewHeight


Rotating Frame: (80, 40, 207.8888, 255.6667) //ATTEMPT 1
Rotating Frame: (50, 60, 207.8888, 255.6667) //ATTEMPT 2
Rotating Frame: (20, 90, 207.8888, 255.6667) //ATTEMPT 3
Rotating Frame: (-10, 120, 207.8888, 255.6667) //ATTEMPT 4

I am increasing width and height alone, but UIView position is moving out of screen. Kindly guide me on this.

Answer Source

Straight from Apple's documentation:


If the transform property is not the identity transform, the value of this property is undefined and therefore should be ignored.


Changes to this property can be animated. However, if the transform property contains a non-identity transform, the value of the frame property is undefined and should not be modified. In that case, you can reposition the view using the center property and adjust the size using the bounds property instead.

Instead of changing the frame size, change the bounds size.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download