iOS UIView 在整个代码中添加和删除子视图
Posted
技术标签:
【中文标题】iOS UIView 在整个代码中添加和删除子视图【英文标题】:iOS UIView adding and removing subviews throughout the code 【发布时间】:2014-10-04 14:44:58 【问题描述】:我的应用中有一条显示人工地平线的蓝线。 我希望能够在代码(.m)的不同部分显示和删除它。 我可以普遍声明它(lineViewHorizon)吗?
目前我只能在相同的代码部分/方法中使其出现/消失。
我想这可以做到吗?
UIView *lineViewHorizon = [[UIView alloc] initWithFrame:CGRectMake(0, pageTopMargin+inthorizon, self.view.bounds.size.width, 2)];
lineViewHorizon.backgroundColor = [UIColor blueColor];
[self.view addSubview:lineViewHorizon];
[lineViewHorizon removeFromSuperview];
【问题讨论】:
【参考方案1】:我希望能够在代码的不同部分显示和删除它
为了从另一个视图中删除一个视图,您需要一个指向要删除的视图的指针。您可以通过在视图层次结构中查找视图来获得它,可能使用-viewWithTag:
,或者您可以将指向视图的指针保存在实例变量(或属性)中。无论哪种方式,关键是您需要一个指向视图的指针,以便您可以向它发送-removeFromSuperview
消息。
【讨论】:
我正在尝试第二种方法,但我正在努力解决语法问题。我在 .h 中放置了一个 -(void) 属性,但不确定如何在 .m 中声明指针。 我可以将其声明为 UIView *lineViewHorizon;在@实现之后?这行得通,但这是一种好的做法吗?以上是关于iOS UIView 在整个代码中添加和删除子视图的主要内容,如果未能解决你的问题,请参考以下文章
如何在一行代码中将多个子视图添加到我的 iOS 视图中? (也许通过“monkeypatching”一个 `addSubviews` 实例方法到 UIView?)
UIView:将 UIViewController 的视图添加为子视图并将其删除