将观点浮在另一个视图上的最佳实践?

时间:2011-04-01 17:54:04

标签: iphone xcode uiview popup

我有一个带有多个按钮的320x460视图,根据按下的按钮,在320x460视图上弹出280x280视图(类似于UIAlertView的行为),使用如下代码:

UIView *overlayView = [[UIView alloc] initWithFrame:CGRectMake(20, 200, 280, 280)];
overlayView.backgroundColor = [UIColor whiteColor];
[overlayView autorelease];
[overlayView addSubview:label]; // label declared elsewhere
[overlayView addSubview:backgroundImage]; // backgroundImage declared elsewhere
    //... Add a bunch of other controls

    [label release];
    [backgroundImage release];
    //... Release a bunch of other controls

[self.view addSubview:overlayView];

显示overlayView及其所有控件的一切正常。

我的问题是,如何在显示后删除overlayView?我想让它不仅不可见而且要完全删除它,因为用户在使用过程中会反复弹出overlayView。

1 个答案:

答案 0 :(得分:3)

您需要访问overlayView才能删除它,我建议将其添加到创建方:

overlayView.tag = 5; // Or some other non-zero number

之后您可以像这样使用它:

-(void)removeOverlayView
{
     UIView *overlayView = [self.view viewWithTag:5];
     [overlayView removeFromSuperview];
}