사과 위의 문서에서 오늘 시스템에서 스냅 샷을 찍었고 위젯을 그릴 필요가있을 때 먼저 스냅 샷을 표시하고 필요할 경우 업데이트를 수행한다는 내용을 읽었습니다.iOS 오늘 위젯 내용이 사라지고 다시 그려지는 경우
위젯이 최신 상태로 표시되도록 시스템에서 간혹 위젯보기의 스냅 샷을 캡처합니다. 위젯이 으로 다시 표시되면 시스템에서 을 라이브보기로 바꿀 때까지 최신 스냅 샷이 표시됩니다.
스냅 샷을 만들기 전에 위젯의 상태를 업데이트하려면 이 NCWidgetProviding 프로토콜을 준수하는지 확인하십시오. 위젯은 widgetPerformUpdateWithCompletionHandler를 수신 할 때 : 이상에서
: 결과 업데이트 을 설명하기 위해 다음 상수 중 하나를 사용하여 호출 가장 최근의 내용으로 위젯의보기를 업데이트하고 완료 핸들러를 호출 나는 UI를 설정의 viewDidLoad 또는 widgetPerformUpdateWithCompletionHandler 또는 어디에서,
- (예 : completionHandler (NCUpdateResult.NewData 등)) NCWidgetProviding 프로토콜을 호출하기 전에 : 나는이 같은 행동 내 코드 예상 .
다음으로 completionHandler (NCUpdateResult.NewData)를 호출합니다.
그러면 시스템에서 내 UI의 스냅 샷을 만듭니다.
사용자가 오늘 위젯을 닫고 열면 시스템에서 즉시 스냅 샷을 표시 한 다음 업데이트가 필요한지 확인합니다.
필요한 경우 업데이트하십시오.
그러나 UI를 그린 후에 오늘 위젯을 닫았다가 열면 위와 같이 작동하지 않습니다.
때로는 예상대로 작동합니다. 바로 위젯을 열면 이전 UI가 즉시 표시되고 업데이트됩니다.
하지만 다른 경우에는 이전 UI 대신 빈칸이 표시되고 물론 UI가 다시 그려지지만 '깜박임'은 성가신 일입니다.
내가 잘못 했나요? 나는이 문서를 오해 했습니까? 내가 자동 레이아웃 및 레이아웃 제약 조건을 사용하기 때문에 그럴 수 있습니까?
나는 내가 생각할 수있는 모든 것을 시도했지만, 때로는 때때로 작동하고 다른 시간에는 작동하지 않습니다.
이 성가신 깜박임을 피하려면 어떻게해야합니까?
도움이나 의견을 보내 주시면 감사하겠습니다. 감사!
해결하셨습니까? :) – iDeC