Я пытаюсь что-то такое тривиальное! Не могу поверить, что это не работает! Возможно, я что-то пропустил! У меня есть домашняя страница в приложении для iPhone. Я хочу добавить subview, который будет изначально выведен из экрана (т. Е. Скрыт вправо, т.е. его frame.origin.x будет шириной экрана), а затем я хочу анимировать его запись на страницу с помощью флип- горизонтально и частично отображать субвью (примерно половина экрана).Почему рамка UIView не установлена?
[self.mySubview.view setFrame:CGRectMake([[UIScreen mainScreen] bounds].size.width, 0.0, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height)]; [self.view addSubview:self.mySubview.view]; NSLog(@"frame before x %f", self.mySubview.view.frame.origin.x); [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:1.0]; [self.mySubview.view setFrame:CGRectMake([[UIScreen mainScreen] bounds].size.width*(2/5), 0.0, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height)]; [UIView commitAnimations]; NSLog(@"frame x %f", self.mySubview.view.frame.origin.x);
Am пытается запустить это на IPad. Но кадр subview не получает вначале 768.0. Кроме того, анимация не происходит. До и после анимации frame.origin.x в представлении subview равен всего 0.0. Где я мог поступить неправильно? Пожалуйста помоги. Я попытался изменить стрелки автосохранения в раскадровке (удаляя их, добавляя их) ... ничего не работает!
Вы уверены, что иерархия зрения была создана до запуска кода? ** В какой момент ** (в жизненном цикле контроллера) вы выполняете этот код? – Alladinian
В другой заметке вы должны использовать анимацию на основе блоков, а не beginAnimation и commitAnimation. – Rakesh
Спасибо за ваши комментарии. Выполняю этот код, когда на домашней странице нажата кнопка. – Jean