Не уверен, что я полностью понимаю вопрос, но я собираюсь сделать хабар.
CATransform3D имеет точку схода, к которой относятся преобразования.Точка схода всегда является центральной точкой x, y любого вида, на который вы помещаете преобразованный вид.Когда я боролся с проблемами трехмерного преобразования и получал неожиданные результаты, это всегда было решено, просто убедившись, что я знал размер и центральную точку представления контейнера.
Вы говорите, что ваш код работает в ViewDidLoad ...Означает ли это, что вы добавляете преобразованный вид в базовый вид?как: this.View.AddSubview (yourTransformedView);??
Я имею в виду, я не думаю, что ваша проблема связана с ViewWillAppear против ViewDidLoad;Я собираюсь догадаться, что если бы я увидел код, в котором вы применяете свое преобразование к представлениям, а затем добавляете ваши представления в базовое представление или в какое-то другое суперпредставление, я смог бы быстро рассказать вам, что происходит.