[英]Removing table subview from Superview
您好在我的应用程序中,最初,我从应用程序代理加载了一个视图。 接下来,当一些按钮单击此根视图时,我添加了此代码。
-(IBAction)method
{
View1 *v1=[[View1 alloc] init];
CGRect frame = CGRectMake(0.0f, 100.0f, 320.0f, 250.0f);
v1.view.frame=frame;
hideView = [[UIView alloc] initWithFrame: CGRectMake(0,0,320,480)];
hideView.backgroundColor = [UIColor blackColor];
hideView.alpha =0.8;
[hideView addSubview:v1.view];
[self.view addSubview:hideView];
}
在上面的代码中,View1是另一个视图控制器,隐藏视图只是根视图控制器中的一个视图。 现在,完全为根视图控制器添加了两个视图。 现在我的问题是,当我单击表格单元格时,我想从“根”视图中删除添加的两个子视图。 这个怎么做? 而且,当我将此子视图添加到根视图时,也无法滚动到表视图并说访问错误,该如何解决呢? 或任何其他方式做到这一点。
您可以为任何视图(子视图)设置唯一tag
,以便以后轻松检索对其的引用。
例如,您可以添加以下几行:
v1.tag = 10112;
hideView = 10113;
并获取对该视图的引用,以后您可以输入:
//view - is a root view of that subviews
View1 *v1 = [view viewWithTag:10112];
UIView *hideView = [view viewWithTag:10113];
// and now you are able to remove them:
[v1 removeFromSuperview];
[hideView removeFromSuperview];
如果View1
在hideView
内部,则可以只调用[hideView removeFromSuperView];
删除两者,或仅使用@Nekto解决方案识别要删除的视图。
对于滚动问题,正常的做法是,如果在UITableView
顶部添加视图,则会丢失表的滚动,您可以查看UIView的hitTest方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.