2017-09-30 9 views
0

UIScrollView가 포함 된 UIViewController가 있는데, 여기에 표시 할 모든 내용을 빌드합니다. 내용이 동적이며 데이터베이스에 저장된 데이터에 의존하기 때문에이 작업을 수행합니다.빠른 앱 방향 변경이 매우 느립니다. iOS 기기의 방향이 바뀌면 어떻게됩니까?

iPhone 또는 시뮬레이터에서 방향을 변경하면 변경 작업을 수행하는 데 시간이 오래 걸립니다 (디스플레이 데이터에 따라 최대 40 초가 소요될 수 있음).

방금 ​​컨트롤러를 실행하면 몇 초가 걸릴 것입니다 (오버레이와 진행 표시기가있어 사용자가 생각하고 있음을 알 수 있습니다).

왜 오리엔테이션을 오래해야합니까? 오리엔테이션 변경이 실제로 발생하면 어떻게됩니까?

답변

0

데이터베이스에서 동기식 또는 비동기식으로 데이터를 어떻게로드합니까? 앱의 응답 성을 높이려면 비동기 적으로로드해야합니다.

또한 데이터베이스가 주 스레드에서 동 기적으로 액세스되는 경우 'viewDidLoad', 'viewDidLayoutSubviews'등의 어딘가에 데이터를로드하는 코드가 어디에 있습니까? 그 로딩 코드가 장치의 방향이 바뀌면 여러 번 실행되는 것 같아서 거기에 중단 점을 넣고 정확히 무슨 일이 일어날 지 알 수 있습니다 ...

+0

UI는 비동기 적으로 생성/업데이트되며 알파 오버레이와 구축하는 동안 진행률 표시기. 데이터베이스 액세스는 매우 빠르며,보기로 변환하는 데 오랜 시간이 걸립니다. viewDidLayoutSubviews()에서 뷰를 빌드하고 불필요하게 실행되지 않습니다. 빌드 할 때 로그 메시지가 생겼고 방향 변경 중에는 해당 코드에 대한 호출이 없으므로 iOS에 레이아웃에 문제가있는 내용이 있습니다. – zkon