旋转的视图是否与自动布局兼容?

Sur*_*gch 10 rotation ios autolayout

我学会了如何使用仿射变换旋转视图(参见此处).我还了解了自动布局(参见此处此处),甚至是程序化的自动布局(参见此处此处).但是,我不知道如何让自动布局与旋转视图一起使用.

此图显示了我想要做的事情:

在此输入图像描述

我认为问题来自宽度和高度因旋转而变化.有没有办法让旋转视图填充它的超视图?是否有一些技巧可以使自动布局工作或旋转后它是不兼容的?

(我只学过Swift,但如果你更熟悉的话,我会很高兴通过Objective-C答案.)

更新

按照@ VinayJain的建议,我做了以下事情:

  • 将子视图边缘固定到故事板中的superview.
  • 为子视图的所有边上的间距约束创建了IBOutlets.

    @IBOutlet weak var rightSpace: NSLayoutConstraint!
    @IBOutlet weak var leftSpace: NSLayoutConstraint!
    @IBOutlet weak var topSpace: NSLayoutConstraint!
    @IBOutlet weak var bottomSpace: NSLayoutConstraint!
    
    Run Code Online (Sandbox Code Playgroud)
  • 旋转子视图

    subview.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2))
    
    Run Code Online (Sandbox Code Playgroud)
  • 改变了网点的限制

    self.rightSpace.constant = CGFloat(0)
    self.leftSpace.constant = CGFloat(0)
    self.topSpace.constant = CGFloat(0)
    self.bottomSpace.constant = CGFloat(0)
    
    Run Code Online (Sandbox Code Playgroud)

但就在这一点上,我意识到我并不需要改变间距值.我希望间距保持为0.我只需要它来调整自己.然而,旋转混乱了.效果如下图所示:

在此输入图像描述

Vin*_*ain -2

您可以使用自动布局轻松完成,

  • 通过将边缘固定到超级视图来创建约束
  • 为这些约束创建出口(比如 leftSpace、rightSpace、topSpace、bottomSpace)

  • 检查旋转,并相应地更新这些值

用它来检查旋转:检查旋转