Почему мой вид становится белым, когда я удаляю подпредставление? - PullRequest
0 голосов
/ 07 июня 2011

по моему мнению, у меня есть scrollView как подпредставление.У scrollView есть другое подпредставление, называемое thePDFView.Он предназначен для показа страницы PDF.
У этого просмотра 2 подпредставления.drawImage - это изображение, загруженное с диска над всем представлением PDF.
А paintView - это второе подпредставление, в котором выполняется рисование и разметка.Но я хочу добавить paintView только когда нажимаю кнопку рисования.
Это работает, но когда я нажимаю его снова, чтобы остановить режим рисования и удалить вид из суперпредставления, весь экран становится белым.
Как мне обойтичто?

- (id)init
{
  ...
  [self.view addSubview:theScrollView];
  [theScrollView addSubview:thePDFView];

  drawImage = [UIImage imageWithData:retrievedData];
  [thePDFView addSubview:drawImage];

  paintView = [[PaintViewController alloc] initWithImage:drawImage andPath:pageString];
}

- (void) togglePainting:(NSNotification *)notif  {

if (!painting) {
    theScrollView.scrollEnabled = false;
    [thePDFView addSubview:paintView.view];
}
else {
    theScrollView.scrollEnabled = true;
    [thePDFView removeFromSuperview];
}

painting = !painting;
}

1 Ответ

2 голосов
/ 07 июня 2011
[thePDFView removeFromSuperview]; 

удаляет весь вид, который был внутри вида с прокруткой, не оставляя вам ничего, кроме вида с прокруткой, у которого сейчас нет подпредставлений.Следовательно, ваш взгляд белый.Я думаю, что вы хотели удалить только paintView.view, поэтому должно быть [paintView.view removeFromSuperview];

...