내 iPad 응용 프로그램의 성능에이 문제가 있습니다.iPad 성능 문제
개발을 위해 쓰레기 수거를 담당하는 MonoDevelop를 사용합니다. 아직도 나의 질문은 오히려 일반적이다.
오케이, 저는 5 개의 NavigationController가있는 TabBarController를 사용합니다. nav 컨트롤러 내부에는 TableViews 또는 ScrollViews 뷰가있는 컨트롤러가 있습니다. 다음 아이는 항상 그냥보기입니다.
나는 몇 가지 질문이 있습니다1) TableViews가 원활하게 이동하지 않습니다. 알파 투명도를 가지고 있지만, 프로그래밍 방식이 아닌 Photoshop에서 그래픽을 만들었으므로 이러한 투명성으로 인해 많은 문제가 발생하지 않습니다. 테이블에 결과가 거의 없거나 많은지는 중요하지 않습니다. 반면에, ScrollView는 같은 목적을 가지고 있습니다. 즉, 다른 레이아웃과 버튼을 가진 테이블이되어 Photoshop에서 투명도를 생성했습니다. 그것은 완벽하게 작동합니다.
테이블의 경우 DequeueReusableCell()
을 적용하여 정상적으로 작동합니다 (스크롤 한 후에도 메모리 사용량이 늘어나지 않습니다). 그렇다면 테이블이 왜 왜곡 될 것입니까?
2) 내 애플 리케이션 회전을 지원합니다. scroll table 또는 scrollView를 사용하여 장치를 조금 기울이면 아마도 1 ~ 2 FPS가됩니다. 회전을 구현하는 가장 좋은 방법은 무엇입니까? 알다시피, ShouldAutorotateToInterfaceOrientation
은 NavigationController 체인의 모든 컨트롤러에서 재정의되어야합니다. 또한 View에서 관찰자를 추가해야합니다. 변경 사항을 원합니다. 모든 뷰에서 BeginGeneratingDeviceOrientationNotifications()
을 사용해야합니까, 아니면 Main.cs에서 충분합니까? 어쩌면이 속도가 느려지는 것일까 요?
3) 앱이 메모리 경고를 받기 시작하고 결국 충돌이 발생합니다. 나는 로그를 읽고 Instruments와 함께 응용 프로그램을 실행하려고 시도했지만 충돌의 원인을 찾을 수 없습니다.
4) NavigationController 스택에서 가져온 뷰에 정확히 무엇이 발생합니까? 나는 그것을 재사용 할 수 없다. 하지만 Monotouch (또는 나)가 올바르게 처리하지 못했을 수 있습니까?
절대 충돌이 발생하지 않는 회전 기능을 지원하지 않으면 iPhone과 거의 동일한 앱을 사용할 수 있습니다. 나는이 로테이션에 뭔가 잘못하고 있다고 생각하지만, 나는 무엇을 확신 할 수 없다.
도움이 될 것입니다. 미리 감사드립니다.
감사합니다.
좋은 답변이지만 4) 올바르지 않습니다. UIView는 뷰가 더 이상 뷰 계층 구조의 일부가 아니고 (보기가 하위 뷰를 유지하므로), 다른 누구도 뷰를 유지하지 않는 즉시 해제됩니다. 그들은 메모리 경고에 전혀 신경 쓰지 않습니다. 반면 _controllers_보기는 현재 볼 수없는 경우 메모리 부족 상태에서 뷰를 언로드 할 수 있습니다. 이것은 네비게이션 컨트롤러에서 현재 표시된 컨트롤러의 "아래"에있는 뷰 컨트롤러에 적용되지만 스택에서 뷰 컨트롤러를 팝하면 즉시 해제되어야합니다. – omz
Eduardo, omz, 도와 주셔서 대단히 감사합니다. 알파를 제거하고 개선 여부를 확인해 보겠습니다. omz, 보류를 해제 해 주셔서 감사합니다. 하지만 일부 하위보기를 공개하거나 매개 변수로 전달하면 어떻게됩니까? 수동으로 처리하면 아무 것도 가리 키지 않을까요? 또는 자동 폐기의 경우 해당 객체에는 여전히 다른 포인터가 있습니까? –
@omz 바로 UIView가 출시됩니다. 질문 (비록 navviewcontroller에서 파생 된보기가 발생합니다)에서, 나는 그들이 UIViewController에 연결되었다는 것을 암시했습니다. –