【问题标题】:CGAffineTrasformRotation also rotates the coordinating systemCGAffineTrasformRotation 也旋转坐标系
【发布时间】:2014-03-12 00:57:53
【问题描述】:

我正在旋转一个UIView,然后向它添加一个新的UIView。但它看起来真的很奇怪。

这是它的外观。红框是不是我想的那样。

我希望红色框与蓝色框的方向相同。

我像这样旋转UIView

[self setTransform:CGAffineTransformRotate(self.transform, DEGREES_TO_RADIANS(90))];

然后以正常方式将红色框添加为UIView

我认为这只是转换的工作方式,我想知道是否有办法解决它?

【问题讨论】:

  • 正确。应用于视图的旋转变换会旋转视图的坐标系。你认为它是如何工作的?

标签: ios objective-c uiview cgaffinetransform coordinate-systems


【解决方案1】:

如果您在执行旋转后添加红色框,这是预期的行为。如果您希望红色框与蓝色框具有相同的变换,则需要在应用旋转变换之前将红色框添加为其子视图。

【讨论】:

  • 你说得对,我还有一个问题。我首先创建了一个 CGRect ,稍后我将使用它,然后添加带有该框架的 UIView 只是为了查看它,这个 CGRect 也会旋转吗?前任。如果我有一个矩形(0,0,40,20),旋转后会是一个(0,0,20,40)吗?
  • 这取决于您设置锚点的位置,但即便如此,要从 (0,0,40,20) 到 (0,0,20,40),您也必须这样做一个翻译。是的,在转换之后,视图的框架也会被调整。但是,需要明确的是,CGRect 没有旋转的概念,它只是一个原点和大小。
猜你喜欢
  • 2012-02-29
  • 1970-01-01
  • 2019-04-02
  • 1970-01-01
  • 2021-09-15
  • 2019-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多