Ответ 1
Ширина и высота (предположительно вы принимаете это от frame.size
) должны меняться, потому что они описывают самый маленький прямоугольник, который содержит весь повернутый вид - если вы поворачиваете прямоугольник на 45 градусов, тогда прямоугольник удерживает повернутый прямоугольник шире и выше исходного прямоугольника.
"Реальный" размер вашего повернутого представления будет по-прежнему доступен в прямоугольнике bounds
- это выражается в внутренней системе координат, которая не вращается.
Итак, если ваш оригинальный frame
был источником (100,100), размером (100,50), ваше повернутое представление будет иметь frame
, где происхождение и размер были прямоугольником, который мог бы соответствовать вашему вращению в нем, описанных в системе координат наблюдения. Если вы сейчас это сделали:
CGFloat width = contentView.frame.size.width;
Вы получите свое измененное значение. Однако, если вы это сделали:
CGFloat width = contentView.bounds.size.width;
Вы получите свое первоначальное значение ширины 100.