У меня есть простой поворотный жест, реализованный в моем коде, но проблема заключается в том, что я поворачиваю изображение, которое оно выводит из экрана/из вида всегда вправо.Вращающийся UIImageView перемещает изображение с экрана
Радиус изображения, который поворачивается в центре X, сходит или увеличивается (следовательно, он выходит прямо из экрана вне поля зрения).
Хотелось бы, чтобы он вращался вокруг текущего центра, но по какой-то причине он менялся. Любые идеи, что вызывает это?
код ниже:
- (void)viewDidLoad
{
[super viewDidLoad];
CALayer *l = [self.viewCase layer];
[l setMasksToBounds:YES];
[l setCornerRadius:30.0];
self.imgUserPhoto.userInteractionEnabled = YES;
[self.imgUserPhoto setClipsToBounds:NO];
UIRotationGestureRecognizer *rotationRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationDetected:)];
[self.view addGestureRecognizer:rotationRecognizer];
rotationRecognizer.delegate = self;
}
- (void)rotationDetected:(UIRotationGestureRecognizer *)rotationRecognizer
{
CGFloat angle = rotationRecognizer.rotation;
self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, angle);
rotationRecognizer.rotation = 0.0;
}
Если вы хотите повернуть вокруг центра изображения, вам нужно убедиться, что центр изображения совпадает с исходным кодом системы координат. Система координат для представления имеет начало в верхнем левом углу. Итак, для начала вам нужно перевести изображение в исходное положение, повернуть его, а затем переместить обратно в исходный центр. Я еще не писал этот код в iOS, поэтому не знаю точной семантики, но я очень уверен, что это ваша проблема. – zambrey
Вы должны просто искать поворот изображения вокруг произвольной точки в iOS. Похоже, что это так много, как и другие блоги. – zambrey
это может помочь: http://stackoverflow.com/a/5983173/210171 «Поворот контекста изображения (CGContextRotateCTM), заставляющий его стать пустым. Почему?» – nielsbot