Objective c 是否有更好的方法从视图中删除最后一个子视图
要从视图中删除最后一个子视图,我使用Objective c 是否有更好的方法从视图中删除最后一个子视图,objective-c,uiview,Objective C,Uiview,要从视图中删除最后一个子视图,我使用 [[[self.view subviews] lastObject] removeFromSuperview]; 我会使用removeLastObject,但不能使用,因为子视图是只读不可变数组 因此,我需要: 访问所有子视图 获取最后一个对象 对其调用方法以将其从superview中删除 这是可行的,但有更好的办法吗?这似乎有点不自然。我寻找类似于[self.view removeLastSubview]的东西,但不幸的是它不存在。创建一个类别 @i
[[[self.view subviews] lastObject] removeFromSuperview];
我会使用removeLastObject
,但不能使用,因为子视图
是只读不可变数组
因此,我需要:
- 访问所有子视图
- 获取最后一个对象
- 对其调用方法以将其从superview中删除
[self.view removeLastSubview]
的东西,但不幸的是它不存在。创建一个类别
@interface UIView (Exptened)
- (void)removeLastSubView;
@end
@implementation UIView(Exptened)
- (void)removeLastSubView
{
[[[self subviews] lastObject] removeFromSuperview];
}
@end
@界面UIView(扩展)
-(void)移除最后一个子视图;
@结束
@实现UIView(扩展)
-(无效)移除LastSubView
{
[[self Subview]lastObject]removeFromSuperview];
}
@结束
避免Objective-C的消息发送语法 注意:不要这样做 我说:不要那样做 但严肃地说:
[[[self.view subviews] lastObject] removeFromSuperview];
很好。我会考虑第一个代码段的气味。 @ TROANGOFE,但我认为这是一个更好的方法。这看起来有点不自然。你做得很好。对于不自然的-欢迎来到Objective-C:)不,那样真的很好。调用
子视图
和最后一个对象
非常便宜,而且从超级视图中移除
无论如何都必须完成。哎呀,我试图添加“[保留]”,结果添加了。。。所以我把它拿走了。
[[[self.view subviews] lastObject] removeFromSuperview];