Я создаю вид и заставляю его двигаться к экрану слева направо. Мне было трудно заставить его работать так, как я хотел, но когда я это сделал, я был озадачен тем, как это работает.
Я подумал, что мне нужно будет создать вид вне экрана слева, а затем использовать CGAffineTransformTranslate, чтобы переместить его на экран. Но вместо этого я создаю его на экране, но он все равно прекрасно работает. Я немного смущен.
Здесь я создаю вид ...
profileViewControllerForIPad = [[ProfileViewController alloc] initWithFrame:CGRectMake(0, 0, 512, 446)];
Как видите, начало координат 0,0. Так на экране, верно?
Вот трансформация ...
[UIView animateWithDuration:0.5
animations:^{
self.view.transform = CGAffineTransformTranslate(CGAffineTransformIdentity,self.view.frame.size.width, 0.0);
}
];
Как вы можете видеть, я устанавливаю значение tx равным ширине CGAffineTransformTranslate, которое, как мне показалось, было значением числа пикселей, которое вы хотели бы переместить из его текущей позиции, origin.x of 0, которое, как я ожидал, будет переместите его в середину экрана куда-нибудь. Вместо этого он вставляется прямо с новым origin.x прямо в 0, где я хочу.
КСТАТИ CGAffineTransformIdentity отлично работает, сдвигая вид обратно с экрана.
Может кто-нибудь объяснить это мне. Документы, кажется, говорят что-то другое.
Спасибо
Джон