2015-01-25 9 views
1

사과 위의 문서에서 오늘 시스템에서 스냅 샷을 찍었고 위젯을 그릴 필요가있을 때 먼저 스냅 샷을 표시하고 필요할 경우 업데이트를 수행한다는 내용을 읽었습니다.iOS 오늘 위젯 내용이 사라지고 다시 그려지는 경우

위젯이 최신 상태로 표시되도록 시스템에서 간혹 위젯보기의 스냅 샷을 캡처합니다. 위젯이 으로 다시 표시되면 시스템에서 을 라이브보기로 바꿀 때까지 최신 스냅 샷이 표시됩니다.

스냅 샷을 만들기 전에 위젯의 상태를 업데이트하려면 이 NCWidgetProviding 프로토콜을 준수하는지 확인하십시오. 위젯은 widgetPerformUpdateWithCompletionHandler를 수신 할 때 : 이상에서

: 결과 업데이트 을 설명하기 위해 다음 상수 중 하나를 사용하여 호출 가장 최근의 내용으로 위젯의보기를 업데이트하고 완료 핸들러를 호출 나는 UI를 설정의 viewDidLoad 또는 widgetPerformUpdateWithCompletionHandler 또는 어디에서,

  1. (예 : completionHandler (NCUpdateResult.NewData 등)) NCWidgetProviding 프로토콜을 호출하기 전에 : 나는이 같은 행동 내 코드 예상 .

  2. 다음으로 completionHandler (NCUpdateResult.NewData)를 호출합니다.

  3. 그러면 시스템에서 내 UI의 스냅 샷을 만듭니다.

  4. 사용자가 오늘 위젯을 닫고 열면 시스템에서 즉시 스냅 샷을 표시 한 다음 업데이트가 필요한지 확인합니다.

  5. 필요한 경우 업데이트하십시오.

그러나 UI를 그린 후에 오늘 위젯을 닫았다가 열면 위와 같이 작동하지 않습니다.

때로는 예상대로 작동합니다. 바로 위젯을 열면 이전 UI가 즉시 표시되고 업데이트됩니다.

하지만 다른 경우에는 이전 UI 대신 빈칸이 표시되고 물론 UI가 다시 그려지지만 '깜박임'은 성가신 일입니다.

내가 잘못 했나요? 나는이 문서를 오해 했습니까? 내가 자동 레이아웃 및 레이아웃 제약 조건을 사용하기 때문에 그럴 수 있습니까?

나는 내가 생각할 수있는 모든 것을 시도했지만, 때로는 때때로 작동하고 다른 시간에는 작동하지 않습니다.

이 성가신 깜박임을 피하려면 어떻게해야합니까?

도움이나 의견을 보내 주시면 감사하겠습니다. 감사!

답변

1

마침내 문제가 해결되었습니다. 이 스레드 덕분에 (Today Extension view flashes when redrawing)

그것은 내 위젯이 어떤 이유로 충돌했기 때문입니다. (때로는 오늘의 위젯과 때로는 IOS 위젯 그 자체일지도 모른다.)

나는 그것이 충돌하는 이유에 대해 연구해야한다. 그러나 적어도 지금 어디에서 파야하는지 알고있다.

+0

해결하셨습니까? :) – iDeC