Я понимаю, что quartz2d состоит в том, что код CGContextTranslateCTM(context, x, y);
переводит систему координат. У меня есть представление quartz2d с множеством фигур, и пользователь должен иметь возможность перемещаться и увеличивать его. Однако при использовании кода CGContextScaleCTM(context, scaleX, scaleY);
все масштабируется вокруг начала координат, а не центра точки обзора, которую просматривает пользователь.
Мое решение для этого было использовать следующий код:
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(context, 512.0+offset.x, 384.0+offset.y);
//(512, 384) is the center of the iPad screen
CGContextScaleCTM(context, scale, scale);
Вы можете хорошо переводить, но все равно в углу. Что не так?
РЕДАКТИРОВАТЬ: Ох. Вот это да. Duh. Если вы перемещаете начало координат, формы тоже перемещаются, поэтому вы не можете переместить его относительно фигур. Теперь я знаю, что не так, но как мне это сделать? (Переместите начало координат независимо от форм)