2011-12-14 2 views
0

"LblA"및 "LblB"라는 2 개의 UILables가있는 .xib가있는 UIViewController가 있습니다. 이 ViewController "A"를 호출 할 수 있습니다. LblA와 LblB의 경계 또는 위치는 lblabounds 및 lblBBounds라는 각각의 @ property에 따라 다릅니다. lblBounds 및 lblBounds의 값이 설정되지 않은 경우 lblA 및 lblB는 .xib의 Interface Builder를 사용하여 배치 될 때 기본 경계에 배치됩니다. lblA 및 lblB에 대한 lblBounds 및 lblBBounds에서 얻은 새 경계는 ViewDidLoad() 함수에서 설정됩니다.보기가로드 될 때 UILabels의 경계를 재설정하면 글리치가 발생합니다 (iOS)

"A"를로드하는 또 다른 UIViewController ("B"라고도 함)가 있습니다. 먼저 객체를 검색하기 위해 "A"의 init을 호출합니다. 그런 다음 해당 객체를 사용하여 lblBounds 및 lblBBounds 값을 설정합니다. 그런 다음 ViewConroller를 "B"의 하위보기로 추가하여 애니메이션을 적용하고로드합니다. 모든 ...을 제외하고 잘 작동

글리치 :

B는 애니메이션 및 A.를 보여 화나게하지만 튀기는 동안, 살짝 들어, lblA 및 lblB가 기본 위치에 있지만 같은 위치 곧 애니메이션이 끝나면 곧바로 멍청이은 lblBounds 및 lblBounds 값으로 설정된 위치로 이동합니다.

이 결함의 원인으로 의심

: lblABounds lblBBounds 및 값에 의한 lblA 및 lblB의 위치로서

는 viewDidLoad에 설정된다. 따라서 애니메이션을 적용하는 동안 실제로 뷰가로드되지 않고 ViewDidLoad가 호출되지 않으므로 lblA 및 lblB가 기본 위치에 배치됩니다. 뷰가 애니메이션으로 완료되고 ViewDidLoad가 호출 되 자마자 lblA와 lblB가 사라지고 기본 위치에서 lblBounds 및 lblBBounds 값으로 설정된 위치로 표시됩니다.

내가 시도했지만 초기화에 lblA 및 lblB의 새로운 경계를 설정

  • 작동하지 않았다 픽스는(). 아무 일도 일어나지 않는다 : S 코드가 실행되지 않는다.

... 도와주세요. 나는 잘 설명하기를 바랍니다.

답변

3

나는 당신의 문제를 올바르게 이해하기를 바랍니다.

또한 하위보기로 추가하기 전에보기를로드 할 수도 있습니다. 이렇게하면 뷰로드 메소드가 강제로 호출되고 애니메이션이 호출되기 전에 레이블 위치가 설정됩니다. 뷰에 대한 뷰 컨트롤러를로드 강제로, 당신은보기 속성

viewController.view 

나는 희망이 도움을 요청해야합니다!

+0

OMG! 그것은 고쳐졌다! 대단히 Eytan 감사합니다! 당신은 최고입니다. 내가 더 많은 투표를 할 수 있었으면 좋겠다. 방금 ​​애니메이션을 시작하기 전에 viewController.view를 호출했고 문제가 해결되었습니다. –

관련 문제