当我删除子视图时,为什么我的视图会变白?

时间:2011-06-07 09:41:56

标签: iphone xcode uiview uiviewcontroller subview

在我看来,我有一个scrollView作为子视图。 scrollView有另一个名为thePDFView的子视图。它用于显示PDF页面 此视图有2个子视图。 drawImage是从整个PDF视图上方的磁盘加载的图像 而paintView是完成所有绘画和标记的第二个子视图。 但是我只想在按下油漆按钮时添加paintView 这是有效的,但当我再次按下它以停止绘画模式并从superview中删除视图时,整个屏幕变为白色 我怎么能绕过它?

- (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 个答案:

答案 0 :(得分:2)

[thePDFView removeFromSuperview]; 

删除滚动视图中的整个视图,只留下现在没有任何子视图的scrollview。因此你的观点是白色的。我想您只想删除paintView.view,因此它应该是[paintView.view removeFromSuperview];