cameraOverlayView の再描画トラブル

UIImagePickerControllerのcameraOverlayView上にあるUILabelやUIImageViewを書き換えていると、どこかでUILabel、UIImageViewの画面書き換えが起こらなくなってしまう現象にあう。

imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.cameraOverlayView = overlayView;

上のoverlayView上のUILabelとUIImageViewで、起こるのは次の場合

  • 1. 一回、Backgroundに入ってからForegroundに戻って起動した場合
  • 2. 数回〜10数回書き換えた場合、回数不定

最初、UIViewにsetNeedsDisplayでOKかと思ったらNG。
しょうがないので、次の様に一回nilにしてから、再設定したら再描画された。

imagePicker.cameraOverlayView = nil;
imagePicker.cameraOverlayView = overlayView;

なんか釈然としない。何か根本的に間違っているのだろうなあ。