Повернуть вид при прокрутке - PullRequest
1 голос
/ 30 июля 2011

Довольно простой вопрос:

У меня есть ScrollView и ImageView. Для каждого прокручиваемого пикселя ImageView должен поворачиваться на определенное количество градусов.

Есть идеи, как это сделать? Заранее спасибо

Ответы [ 2 ]

1 голос
/ 30 июля 2011

Реализация UIScrollViewDelegate и поворот с аффинным преобразованием.

#import <QuartzCore/QuartzCore.h>

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGPoint offset = scrollView.contentOffset;
    CGFloat rotateDegrees = offset.y;
    CGFloat rotateRadians = rotateDegrees * (M_PI / 180);
    _myImage.layer.affineTransform = CGAffineTransformMakeRotation(rotateRadians);
}

Чтобы сбросить вращение, используйте _myImage.layer.affineTransform = CGAffineTransformIdentity.

0 голосов
/ 30 июля 2011

Назначьте делегат для представления прокрутки и реализуйте метод -scrollViewDidScroll:. Это вызывается каждый раз, когда перемещается представление прокрутки. В этом методе получите contentOffset представления прокрутки и сравните его с некоторым сохраненным начальным состоянием. Это количество прокручиваемых пикселей / точек.

Определите, на сколько вы хотите повернуть изображение в результате, и создайте преобразование вращения с помощью CGAffineTransformMakeRotation ( docs ) и назначьте его свойству transform представления изображения.

...