要从视图中删除最后一个子视图,我使用

[[[self.view subviews] lastObject] removeFromSuperview];

我会使用removeLastObject,但不能因为subviews是只读不可变数组。
所以我需要:
访问所有子视图
获取最后一个对象
对其调用方法以将其从SuperView中移除
很有效,但是有更好的方法吗?这似乎有点不自然。我寻找一些类似于[self.view removeLastSubview]的东西,但不幸的是它不存在。

最佳答案

避免objective-c的消息发送语法
注意:不要那样做

UIView *lastView = self.view.subviews[self.view.subviews.count-1];
lastView.removeFromSuperview;

我说:别那么做
但说真的:
[[[self.view subviews] lastObject] removeFromSuperview];

很好。我会考虑第一段代码的味道。

关于objective-c - 是否有更好的方法从 View 中删除最后一个 subview ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24303395/

10-10 20:32