Я одушевляю объекты, падающие на доску сверху, и хочу анимировать доску «отступать», когда объекты падают на нее. Объекты могут падать в любую точку на доске, и когда доска «падает», я масштабирую доску в меньшем масштабе.Центрирование CGAffineTransformScale вокруг заданной точки
При использовании CGAffineTransformScale объектов шкалы в зависимости от их точки привязки, центр объекта; Я хочу масштабировать доску, а затем выстраивать преобразованную доску с объектом, который упал на нее, так что упавший объект, похоже, остается в одном и том же месте относительно доски (или, вернее, плата остается в в том же месте относительно положения доски).
Я потратил часы и часы, изменив точку привязки на позицию, в которой объект упал, но это показало фундаментальное недоразумение в моей части того, как работает layer.anchorPoint.
Я предполагаю, что решение выводит вектор от центра до заданного падающего объекта, а затем каким-то образом корректирует положение доски в трансформации, поэтому это одно и то же место. Здесь мне нужна помощь!
Как и следовало ожидать, в этих ситуациях необходим анимированный gif.
Это то, что я думал, и что я делал, за исключением того, что у меня было какое-то совершенно безумное поведение, когда плата перемещала бы около 100 пикселей в казалось бы случайном направлении (см. Здесь: https://www.dropbox.com/s /5gi3uvcdm02hp5r/awesomemovieofawesomeness.mov В этом видео используется anchorPoint .61,0). Я также отключил автомат. Если точка привязки правильная, то почему она так прыгает? – glenstorey
Единственная разница в том, что я использовал board.frame.size.width, который, как я понимаю, получен из слоя. – glenstorey
@glenstorey, когда вы меняете точку привязки **, представление будет перемещаться ** таким образом, чтобы точка представления в точке привязки находилась в том же месте в супервизии, что и раньше, и это то, что происходит в вашем видео. Вы тоже должны это компенсировать. – Greg