오늘, 취소 후 기본 원점으로 돌아가는보기를 얻으려고합니다. 나는 이것을하기 위해 두 개의 VC를 사용하고있다. 하나는 테이블 뷰의 바닥 글 컨트롤러이고 다른 하나는 첫 번째 애니메이션 이후에 표시되는 모달보기입니다. 모달 뷰에서 되돌아 가려고 할 때마다, 첫 번째 애니메이션을 수행 한 후에도 원점은 여전히 동일합니다. 원래 위치로 원점을 이동
Footer:
-(IBAction)addPerson:(id)sender{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.25];
NSLog(@"%f", self.view.frame.origin.y);
self.view.frame = CGRectMake(0,-368,320,400);
[UIView commitAnimations];
self.tdModal2 = [[TDSemiModalViewController2 alloc]init];
// [self.view addSubview:test.view];
[self presentSemiModalViewController2:self.tdModal2];
}
-(void)moveBack{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.25];
NSLog(@"%f", self.view.frame.origin.y);
self.view.frame = CGRectMake(0,368,320,400);
[UIView commitAnimations];
}
그리고 모달 뷰에서
: 나는 다음과 같은 권장 사항을 제공-(IBAction)cancel:(id)sender{
[self dismissSemiModalViewController:self];
FooterViewController *foot = [[FooterViewController alloc]init];
self.footer = foot;
// self.footer.view.frame = CGRectMake(0,35,320,400);
[self.footer moveBack];
}
내가 당신의 코드가 잘못이라고 생각, 당신은 취소 방법에 새로운 FooterViewController을 만드는,하지만 당신은 모든보기에 할당되지 않습니다 또는 자동으로 할당 된 경우 마치 새로운 것 인 것처럼 원래의 원점에서 생성됩니다. 같은 바닥 글이 아니에요. 이전에 애니메이션으로 찍은 것. – htafoya
또한 iOS 4.0 이상에서는 [UIView beginAnimations]를 사용하지 않는 것이 좋습니다. 대신 블록 기반 애니메이션 방법을 사용하여 애니메이션을 지정해야합니다. – htafoya
@htafoya 흠. 필자가 본 대부분의 예제는이를 사용했습니다. 또한 문제에 대한 '솔리드'솔루션이 있습니까? – 128keaton