2013-04-16 4 views
1

정말 사소한 것을 시도 중입니다! 그것이 작동하지 않는다고 믿을 수 없다! 어쩌면 무엇인가 내려다보고 있습니다! 내 iPhone 앱에 홈 페이지가 있습니다. 지금은 화면 밖으로 처음에 될 것입니다 (즉 오른쪽 즉, 숨겨진 즉, 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); 

은 오전 아이 패드에서이 작업을 실행하려고합니다. 그러나 하위 뷰의 프레임은 처음에 768.0으로 설정되지 않습니다. 또한 애니메이션이 발생하지 않습니다. 애니메이션 전후에, 서브 뷰의 frame.origin.x는 단지 0.0입니다. 나는 어디에서 잘못 할 수 있었습니까? 도와주세요. 나는 스토리 보드에서 자동 크기 조절 화살표를 변경하려고 시도했다. (제거하고 추가했다.) 아무 것도 작동하지 않는 것 같다!

+1

를 시도? ** 어느 시점에서 ** (컨트롤러의 라이프 사이클에서)이 코드를 실행하고 있습니까? – Alladinian

+0

또 다른 참고 사항으로 beginAnimation 및 commitAnimation 대신 블록 기반 애니메이션을 사용해야합니다. – Rakesh

+0

의견을 보내 주셔서 감사합니다. 홈 페이지에서 버튼을 누르면이 코드가 실행됩니다. – Jean

답변

0

이 시도 :

self.mySubview 

instend

self.mySubview.view 
1

는 뷰 계층이 코드를 실행하기 전에 만들어 졌는지 확신이

Someviewcontroller *c = initWithNibName 
    c.view.frame = CGRectMake(0, 0, 200, 200); 
    [self addSubView:c]; 
관련 문제