Как сказал MSN, они используются в разных случаях. CGAffineTransform используется для 2-D манипулирования NSViews, UIViews и других элементов 2-D Core Graphics.
CATransform3D - это структура Core Animation, которая может выполнять более сложные трехмерные манипуляции с CALayers. CATransform3D имеет ту же внутреннюю структуру, что и матрица представления модели OpenGL, что имеет смысл, когда вы понимаете, что Core Animation построена на OpenGL (CALayers - это оболочки для текстур OpenGL и т. Д.). Я обнаружил, что это сходство внутренней структуры в сочетании с некоторыми хорошими вспомогательными функциями, которые предоставляет Apple, может позволить вам сделать некоторые аккуратные оптимизации OpenGL, поскольку я публикую здесь .
Когда дело доходит до выбора, который действительно используется, спросите себя, собираетесь ли вы работать с представлениями непосредственно в 2-D пространстве (CGAffineTransform) или с базовыми слоями Core Animation в 3-D (CATransform3D). Я использую CATransform3D чаще, но это потому, что я провожу много времени с Core Animation.