The automatic layout acts on the frame of your UIView. The frame is calculated from your center of view, borders and transformation properties. By default, view.transform is only CGAffineTransformIdentity, and in this configuration, the frame is a rectangle oriented identically to supervision, with the same width and height as the border of the view.
However, when you modify view.transform (or, equivalently, view.layer.transform) as you do, then this breaks the predictable relationship between the center, borders, and frame. For example, if your conversion is a 20-degree rotation, then the frame will no longer have the same width and height as the borders. Now the frame will be (I think ...), whatever rectangle oriented exactly to the supervisor does not contain your original rectangle, which now rotates 20 degrees.
And since the automatic layout acts on the frame property, now it will most likely create a layout that you don't need.
For example, suppose your view represents a circle in a 10x10 frame rectangle, the top left aligned with the caption through spatial restrictions. Then you rotate it 45 degrees. The spinning circle looks the same. But now the frame is the smallest rectangle that your original rectangle can contain when it rotates, and this smallest rectangle is 10 / sqrt (2) x 10 / sqrt (2). When the automatic layout applies top left alignment to this new frame, you will see that your circle is shifted down and to the right. Instead of being visually centered on {5.5}, ββit will now be centered on {5 / sqrt (2), 5 / sqrt (2)}.
I think that for this you need to either manually adjust the "constant" layout constraint parameter to correct the consequences of your conversion, or similarly redefine alignmentRectForFrame to make the automatic layout work on alignmentRect, which is configured to compensate for your conversion, as well as to determine your initial restrictions to snap to the center of your view, which the transformation cannot influence.