Я повернул представление на 50 градусов вокруг оси y, используя Core Animation. Я хочу, чтобы край обзора касался края экрана. Как я могу это сделать?Как определить, насколько удален 3D-поворот объекта с края экрана
Я знаю длину обзора и количество градусов, на которые повернулось изображение (50 градусов), поэтому, поначалу я подумал, что могу определить расстояние между видом и краем, используя тригонометрию. Тем не менее, перспектива камеры подвержена влиянию по объекту m34
объекта CATransform3D
struct. Как я могу определить расстояние, которое мне нужно, чтобы переместить вид, чтобы выровнять его с краем экрана?
CATransform3D rotation = CATransform3DIdentity;
rotation.m34 = -1.0/500.0;
rotation = CATransform3DRotate(rotation, 50.0 * M_PI/180, 0.0, 1.0, 0.0);
view.layer.transform = rotation;
view.layer.zPosition = 200;
Значение по умолчанию для трансформированного объекта остается неизменным. Кадр - это наименьший нетрансформированный прямоугольник, который может содержать весь связанный вид, поэтому почему это еще не работает? – CodaFi
Вам действительно нужно, чтобы представление транслировалось по оси z? –
@CodaFi, я не думаю, что выравнивание рамки до края супервизора будет работать от Apple: если это свойство не является преобразованием идентичности, значение свойства frame не определено и поэтому должно игнорироваться. – marchinram