Я хотел бы повернуть UIImageView
на 90 градусов по длине представления iPhone с помощью imageView.transform = CGAffineTransformMakeRotation(degrees * M_PI/180);
, и мне было интересно, как я могу реализовать это, когда представление перетаскивается влево пользователем ( и, следовательно, также возможность поворота «назад», если вид перетаскивается вправо). Спасибо!
1 ответ
Что касается перемещения представления, вы можете сделать это, обновив его свойство frame
следующим образом.
view.frame = CGRectMake(view.frame.origin.x + xOffset, view.frame.origin.y, view.frame.size.width, view.frame.size.height);
Вы также можете добавить и observer
, который прослушивает ваши view
frame
изменения.-
[view addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionOld context:NULL];
Здесь вы в основном запрашиваете уведомление при изменении свойства frame
объекта view
. Вы можете обработать это уведомление, используя следующий метод:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if([keyPath isEqualToString:@"frame"]) {
// Change object rotation depending on frame.origin.x
}
}
Чтобы вычислить вращение на основе положения x
, вам нужно будет выполнить некоторые математические вычисления. Кроме того, я полагаю, что повернуть изображение по центру немного сложно, возможно, вам будет полезен пост, приведенный ниже.
http://www.informit.com/blogs/blog.aspx?uk=Ask-Big-Nerd-Ranch-Rotating-an-iPhone-View-Around-a-Point
Дело в том, что вам не придется беспокоиться о том, куда вы панорамируете, поскольку вращение вида будет обновляться в соответствии с его положением каждый раз, когда оно изменяется.
Надеюсь, это поможет :)
Похожие вопросы
Новые вопросы
ios
iOS - мобильная операционная система, работающая на Apple iPhone, iPod touch и iPad. Используйте этот тег [ios] для вопросов, связанных с программированием на платформе iOS. Используйте связанные теги [target-c] и [swift] для проблем, характерных для этих языков программирования.
UIPanGestureRecognizer
, и перетаскивание работает. Однако у меня возникли проблемы с выяснением того, как добавить преобразованияUIImageView
во время перетаскивания, а также повернуть представление назад, если пользователь панорамирует правильно.