iPhone 앱에서 손가락을 드래그하여 여러 색상으로 그림을 그리지 만 앱을 최소화하고 최대화하면 드로어 메서드를 호출하므로 모든 그림이 손실됩니다. 이 메소드가 어디에서 호출되는지는 모르지만이 문제에 대한 해결책을 찾을 수는 없습니다. 주로 기기에서 많은 앱을 실행하면 주로 발생합니다. 나는 iOS가 iPhone의 낮은 성능을 방지하기 위해 버퍼의 모든 데이터를 삭제한다고 생각합니다. 이 문제에 대한 해결책은 무엇입니까? 왜 그림을 잃어 버리는거야? 도와주세요! 이 문제의 해결책을 찾지 못했습니다.앱이 포어 그라운드에있을 때 모든 그림을 잃음
답변
프레임 워크는 필요에 따라 drawRect를 호출하며 호출 될 때 뷰를 그리는 것은 사용자의 책임입니다. drawRect가 호출 될 때마다보기를 다시 그리기 위해 사용자 동작에서 필요한 상태를 저장해야합니다.
보기가 백그라운드에서 언로드되고 전경으로 돌아 왔을 때보기가 다시보기로 표시되므로 다시 그립니다.
배경을 입력 할 때 장치 메모리가 부족하면 Apple은 배경 응용 프로그램의보기를 언로드 (심지어 응용 프로그램 닫기)하여 현재 실행중인 응용 프로그램의 메모리를 확장합니다. 보기가 언로드되고 전경으로 되돌아 가면보기가 "데이터"로 다시 작성되므로보기에 "데이터"가 들어 가지 않도록하십시오.
어쩌면 iOS6의에서
는, 애플은 메커니즘는 의 drawRect 메소드를 호출로 내 모든 도면을 상실하고 수정합니다. 당신이 당신의 drawRect 방법에 그리기하지 않을 경우 귀하의 질문에서
, 그것은 보인다, 의 drawRect 방법은보기가로드/업데이트 될 때마다 호출된다. 그래서 배경에서 들어올 때 drawrect 메서드가 호출됩니다. 드로잉 메커니즘에서 drawrect 메서드로 처리하지 않으면 모든 데이터가 손실됩니다.
이 메소드의 디폴트 구현은 아무것도하지 않습니다. 고유 한 드로잉 기술 (예 : Core Graphics 및 UIKit) 을 사용하여 뷰의 내용을 그리는 서브 클래스 은이 메서드를 재정의하고 드로잉 코드를 구현해야합니다. 보기가 다른 방식으로 내용을 설정하면이 방법을 재정의 할 필요가 없습니다. 예를 들어, 뷰가 배경색 만 표시하거나 뷰가 기본 레이어 객체를 사용하여 직접 내용을 설정하는 경우이 메서드를 재정의하려면 이 필요하지 않습니다. 마찬가지로보기 이 OpenGL ES를 사용하여 그 그림을 그리는 경우이 방법을 재정의해서는 안됩니다.
다른 방법으로 처리하는 경우보기를 ViewwillAppear에서 그려야합니다.
그렇지 않으면 메모리 경고가 발생하므로 일반적으로 데이터를 초기화하는 곳에서 ViewDidLoad가 호출되기 때문에 메모리 원인이있을 수 있습니다.
- 1. 앱이 포어 그라운드에있을 때 화재 기반 알림을 처리하는 방법
- 2. 앱이 포어 그라운드에있을 때 UIWebView를 새로 고치는 방법은 무엇입니까?
- 3. 앱이 포어 그라운드에있을 때 티타늄 크래시가 발생하고 밀어 내기 알림 메시지 (IOS)
- 4. 앱이 포어 그라운드에있을 때 uiwebview에서 열리는 html 페이지에서 javascript 함수를 호출하는 방법은 무엇입니까?
- 5. Android : 앱이 포어 그라운드로 돌아갈 때 알려주기
- 6. iOS : 앱이 포 그라운드에있을 때 원격 알림을 무시하도록하는 방법은 무엇입니까?
- 7. 응용 프로그램이 백그라운드로 오면 서비스를 시작하고 응용 프로그램이 포어 그라운드에있을 때 서비스를 중지합니다.
- 8. 앱이 포어 그라운드로 들어갈 때 Webthread locking 메인 스레드
- 9. iOS에서 어떤 앱이 배경이고 어느 앱이 포어 그라운드인지 확인하는 방법
- 10. 로컬 알림, applicationIconBadgeNumber는 앱이 포 그라운드에있을 때까지 유지됩니다.
- 11. 푸시 알림을받을 때 앱이 포 그라운드에있을 때 uialertview를 제거 할 수있는 방법이 있습니까?
- 12. 브라우저 창/탭이 포어 그라운드에 있지 않을 때 감지
- 13. 포어 그라운드에서 토스트 알림
- 14. 보기에서 Oracle SDO_POINT를 사용할 때 십진수를 잃음
- 15. `willPresent notification`이 호출되지 않고 iOS 10에서 앱이 포 그라운드에있을 때 로컬 알림이 표시되지 않음
- 16. 아이폰에서 어떤 앱이 포어 그라운드에서 돌아가고 있는지 찾는 방법
- 17. 앱이 전경에있을 때 UILocalNotification이 사운드를 재생하지 않습니다.
- 18. 응용 프로그램이 포어 그라운드로 들어갈 때 원격 알림을 감지합니다.
- 19. TabControl이 Window.Show에서 선택된 탭을 잃음
- 20. 포어 그라운드에 앱이있을 때 Firebase onMessageReceived가 호출되지 않음
- 21. EditText가 ListView에서 포커스를 잃음
- 22. TextBox가 신비하게 포커스를 잃음
- 23. ManagementEventWatcher가 C#에서 이벤트를 잃음
- 24. 앱이 백그라운드로 이동할 때 백그라운드 작업을 처리해야하지만 작업이 완료되기 전에 포어 그라운드로 돌아 가야합니까?
- 25. 포어 맨 자동 재시작
- 26. 아이폰 OS 내가 응용 프로그램이 포 그라운드에있을 때 응용 프로그램이
- 27. 그림을 그릴 때 색을 무시하십시오.
- 28. 포어 맨 시작 스크립트
- 29. 앱이 파이어베이스에 백그라운드로있을 때 알림 횟수를 처리하는 방법
- 30. 포어 맨이 시작되지 않습니다