Почему вращая изображение, он меняет положение?

когда я использую: ImageView.transform = CGAffineTransformRotate(ImageView.transform, вращение); каждый раз, когда я поворачиваю изображение и запускаю NSLog(@"x:%f y:%f", ImageView.frame.orgin.x, ImageView.frame.orgin.y), x и y всегда меняют значение?? Почему?


person Huỳnh Phong    schedule 09.12.2012    source источник


Ответы (2)


Ну, .frame.origin — это верхний левый угол вашего UIImageView, и, поскольку вы вращаете его, верхний левый угол движется. Если вы получите доступ к .center, он должен остаться прежним.

person Majster    schedule 09.12.2012
comment
когда я перемещаю вид, используя: CGAffineTransformTranslate(view.transform, difx, dify); И я получаю: view.center.x, это значение не меняется, когда я его перемещаю?? - person Huỳnh Phong; 09.12.2012
comment
Центр @HuỳnhPhong меняется при перемещении вида. Установив преобразование перевода, вы просто отображаете содержимое со смещением относительно положения представления. Перевод не перемещает представление. - person Tricertops; 09.12.2012
comment
Спасибо! Как получить текущую центральную точку при перемещении вида с помощью CGAffineTransformTranslate? - person Huỳnh Phong; 09.12.2012
comment
Чтобы получить перевод: view.transform.tx и view.transform.ty. Эти координаты относятся к center представления, поэтому, чтобы получить абсолютный X: view.center.x + view.transform.tx. - person Tricertops; 09.12.2012

В документации UIView указано, что

Предупреждение. Если это свойство не является преобразованием удостоверения, значение свойства фрейма не определено и поэтому его следует игнорировать.

относительно свойства преобразования UIView. Поскольку вы назначаете преобразование, оно, скорее всего, больше не является преобразованием идентичности, поэтому значение кадра не определено и его следует игнорировать.

person Hjalmar    schedule 09.12.2012
comment
Это странно, потому что для меня frame всегда работало как ограничивающая рамка повернутого вида. - person Tricertops; 09.12.2012
comment
Я согласен, что это звучит странно, и я также использовал свойство фрейма как то, как его видит супервизор, а затем границы дают фактические координаты повернутого вида. Сегодня я впервые увидел эту документацию. - person Hjalmar; 09.12.2012