2009-07-17 6 views
0

탭 사이를 전환하는 UITabBarController가 있습니다. 유일한 문제는 응답하는 데 최대 3 초가 걸리는 경우가 있다는 것입니다 (didSelectViewController 호출).Tabs- didSelectViewController 호출 속도가 느림

이것은 UI 요소와 UIViews 및 UILabels 등이 많은 페이지간에 전환 할 때만 발생합니다. 추가하고 제거 할보기가 없을 때 즉시 응답합니다.

터치를 수신 할 때 다른 작업을 수행하기 전에 didSelectViewController를 호출해야한다고 생각합니다.하지만이 경우에는 보이지 않습니다. 누구든지 내 애플 리케이션을 속도를 낼 수있는 방법에 대한 제안이 있습니까?

감사

답변

1

귀하의 앱이보기를 렌더링하는 데 시간이 오래 걸릴 것으로 예상됩니다. viewWillAppear: 메서드를 사용하여 느린 쿼리를 실행하는지 또는 뷰가 표시 될 때 많은 시간이 걸리는 다른 작업을 수행하는지 확인하는 것이 좋습니다. 그렇다면 캐시를 사용하거나 자리 표시 자 페이지를 표시 할 수 있습니다. UIView이 너무 많아 앱이 느린 경우 대신 맞춤 렌더링보기를 사용하거나 UITableView을 사용하고 하위보기 만로드하면됩니다.

iPhone OS 3.0에서는 터치 후 실제로 호출 된 탭이 실제로 선택되기 전에 tabBarController:shouldSelectViewController:이 있습니다.

+0

응답 해 주셔서 감사합니다. 탭바 터치를 받으면 viewController-> viewWillAppear에서 즉시 중단되지만 continue를 실행하면 tabBarController-> didSelectViewController로 진행하는 데 몇 초가 걸릴 수 있습니다. 그런 다음 continue가 탭 표시 줄 항목이 선택된 것으로 즉시 표시됩니다. 나는 [super ]에게 전화하는 것 이외에는 viewWill/Did/Appear/Disappear에서 아무것도하지 않을 것입니다. 이 두 지점 사이에서 발생하는 모든 일은 상당한 지연을 초래합니다. 나는 화면 상에있는 것을 그리기 만하므로,보기, 라벨, 이미지가 아주 많지는 않습니다. – Sam

+0

죄송합니다. 저는 실제로 viewWillAppear와 didSelectViewController 사이에서 상당한 양의 작업을하고 있다는 것을 알았습니다. 죄송합니다. – Sam

0

당신이 사전에 귀하의 의견을로드하거나 이미 그들을로드하면 나는 오랫동안의을 안 그들 사이 switchign 생각 메모리에 보관하는 경우, 새로운 뷰가로드 될 수 expiriencing되는 시간 시간 ...

관련 문제