2010-12-01 7 views
0
내가보기 움직이는 몇 가지 문제에 봉착

:위치 프레임은 아이폰 OS로 이동 한 후 작동하지 않습니다 4.2

- (void)viewDidLoad { 

    CGRect newFrame = self.popUp.view.frame; 
    newFrame.origin.y = self.view.bounds.size.height; 
    self.popUp.view.frame = newFrame; 

    [[self view] addSubview:[self.popUp view]]; 

    [super viewDidLoad]; 
} 

이 현재 화면 아래에있는 하위 뷰 popUp을 넣어해야하지만, 그것을 이동하지 않는 것을 . 나는 이것이 4.2 이전에 효과가 있었음을 거의 확신한다. 어떤 일이 벌어 질지에 대한 아이디어가 있습니까? 애매 모호한 것을 유감스럽게 생각합니다. 질문이 있으시면 언제든지 물어보십시오.

답변

0

[super viewDidLoad]을 메서드의 맨 위로 이동하려고 시도 했습니까? 수퍼 클래스의 메소드를 호출하면 상속받은 변수의 상태에 영향을 미칠 수 있습니다. 이에

좋은 포스트 : 당신이 이동하는 것처럼 `[super viewDidLoad]` convention

+0

흠, 트릭을하지 않았습니다. 링크를 가져 주셔서 감사합니다. 좋은 정보. – emachine

0

너무 popUp.view의 상단이 self.view의 하단에 보인다. 그리고 나서 popUp.viewself.view에 추가 할 때 "바깥 쪽"은 self.view입니다. newFrame.origin.y = self.view.bounds.size.height - 100;으로이를 확인할 수 있으며 표시되는지 확인할 수 있습니다.

보기가 이전과 같이 나타나지 않는 한 가지 이유는 사용자가 clipsToBounds을 변경했기 때문일 수 있습니다. 나는 또한 다른 드로잉 최적화가 발생할 수도 있고 경계를 벗어나 보이지 않는 뷰를 그리지 않을 수도 있다고 상상한다.

당신은 내가 더 좋은 방법은보기의 하단에 팝업 배치가 될 것이라고 생각 뷰 아래에 표시하기 위해 팝업을 원하는 경우 :

newFrame.origin.y = self.view.bounds.size.height - newFrame.size.height; 

또는 팝업 뷰를 배치하여 self.view의 수퍼 뷰에서 이 경우 superview의 컨트롤러에서 보여주는 것을 처리하고 싶을 것입니다.

관련 문제