Перетаскиваемое вращение UIImgeView - PullRequest
0 голосов
/ 12 августа 2010

У меня есть объект UIImageView, который я вращаю со свойством фрейма и CFAffineTransformMakeRotate, и затем я хочу не перемещать его с движущимся источником его фрейма, но мое изображение смещается и изменяет форму.

Класс TimberView является подклассом UIImageView

1 Ответ

0 голосов
/ 14 августа 2010

Цитата из ссылки на свойство фрейма UIView:

Если также установлено свойство transform, используйте вместо этого свойства bounds и center;в противном случае анимация изменений свойства фрейма не будет правильно отражать фактическое расположение представления.

Поэтому, если вы примените какое-либо пользовательское преобразование к своему виду, вы не сможете использовать свойство кадра представления.Чтобы переместить представление, измените его свойство center, поэтому ваш код должен быть преобразован в (не уверен, что код правильный):

- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
{
    // Move relative to the original touch point
    CGPoint pt = [[touches anyObject] locationInView:self];
    CGPoint newCenter;

    newCenter.x += pt.x - startLocation.x;
    newCenter.y += pt.y - startLocation.y;
    [self setCenter: newCenter];
}

Если вы хотите просто расположить центр вида в касанииВы можете использовать следующий код:

UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView: [self superview]];
self.center = touchPoint;
...