使用CGAffineTransformMakeRotation时无法增加UIView的高度和宽度

时间:2016-10-20 17:20:55

标签: swift uiview cgaffinetransform

我正在使用UIView值轮换UISLider。如果滑块值增加或减少,则根据旋转发生。我的代码工作正常。

轮换操作:

@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) 

在轮播UIView之后,我尝试增加该视图的widthheight,它无效。

调整行动

@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

我正在增加宽度和高度,但是UIView的位置正在移出屏幕。请指导我。

1 个答案:

答案 0 :(得分:1)

直接来自Apple's documentation

  

警告

     

如果transform属性不是identity变换,则值为   此属性未定义,因此应忽略。

  

可以设置对此属性的更改。但是,如果改造   property包含一个非标识变换,即帧的值   属性未定义,不应修改。在那种情况下,你   可以使用center属性重新定位视图并调整大小   使用bounds属性。

不改变帧大小,而是更改边界大小。