Ios 从Superview中删除子视图
我真的被这个问题困扰了很长时间 我正在尝试将Ios 从Superview中删除子视图,ios,uiview,subview,superview,Ios,Uiview,Subview,Superview,我真的被这个问题困扰了很长时间 我正在尝试将UIControl(最后是UIView)添加到我自己的类中有子类的UITableViewCell(我制作了一个自定义单元格) 在刷卡时,我创建我的UIControl类并将其添加到我自己(单元格)中,目前为止效果良好。这是密码 [self addSubview:_statusView]; 但是,我正在将目标动作添加到自定义单元格中的我的UIControl,以便当UIControl表示他已识别触地事件时,该单元格可以处理 [self.statusView
UIControl
(最后是UIView
)添加到我自己的类中有子类的UITableViewCell
(我制作了一个自定义单元格)
在刷卡时,我创建我的UIControl
类并将其添加到我自己(单元格)中,目前为止效果良好。这是密码
[self addSubview:_statusView];
但是,我正在将目标动作添加到自定义单元格中的我的UIControl
,以便当UIControl
表示他已识别触地事件时,该单元格可以处理
[self.statusView addTarget:self action:@selector(resetAll:) forControlEvents:UIControlEventTouchDown];
这是我想在操作中做的,我想从self.subview
(单元格的子视图)中删除UIControl
,所以我将操作方法设置为如下
- (void)resetAll:(id)sender
{
for (UIView *view in self.subviews) {
if ([view isKindOfClass:[StatusView class]]) {
[view removeFromSuperview];
}
}
}
有人能指出这段代码中的错误吗?因为我真的不明白为什么添加到单元格中的视图没有被删除。在我看来,子视图属性似乎从未包含我添加的UIControl
- (void)resetAll:(id)sender
{
for (UIView *view in self.view.subviews) {
if ([view isKindOfClass:[StatusView class]]) {
[view removeFromSuperview];
}
}
}
或
或
或
或
UITableViewCell
在内部对其视图层次结构进行一些操作。您不应将子视图添加到单元格本身,而应添加到其contentView
,如中所述:
如果要超越预定义样式,可以添加子视图
添加到单元格的contentView属性
所以你必须更换
[self addSubview:_statusView];
与
然后在contentView
的子视图上迭代:
for (UIView *view in self.contentView.subviews) {
if ([view isKindOfClass:[StatusView class]]) {
[view removeFromSuperview];
}
}
UITableViewCell
在内部对其视图层次结构进行一些操作。您不应将子视图添加到单元格本身,而应添加到其contentView
,如中所述:
如果要超越预定义样式,可以添加子视图
添加到单元格的contentView属性
所以你必须更换
[self addSubview:_statusView];
与
然后在contentView
的子视图上迭代:
for (UIView *view in self.contentView.subviews) {
if ([view isKindOfClass:[StatusView class]]) {
[view removeFromSuperview];
}
}
UITableViewCell
在内部对其视图层次结构进行一些操作。您不应将子视图添加到单元格本身,而应添加到其contentView
,如中所述:
如果要超越预定义样式,可以添加子视图
添加到单元格的contentView属性
所以你必须更换
[self addSubview:_statusView];
与
然后在contentView
的子视图上迭代:
for (UIView *view in self.contentView.subviews) {
if ([view isKindOfClass:[StatusView class]]) {
[view removeFromSuperview];
}
}
UITableViewCell
在内部对其视图层次结构进行一些操作。您不应将子视图添加到单元格本身,而应添加到其contentView
,如中所述:
如果要超越预定义样式,可以添加子视图
添加到单元格的contentView属性
所以你必须更换
[self addSubview:_statusView];
与
然后在contentView
的子视图上迭代:
for (UIView *view in self.contentView.subviews) {
if ([view isKindOfClass:[StatusView class]]) {
[view removeFromSuperview];
}
}
您的resetAll:选择器被调用了吗?为什么不仅仅调用
[sender removeFromSuperview]
?resetAll:
确实被调用了<代码>发送者是事件吗?我想删除的不是UIView
。-(void)resetAll:(UIView*)发送方{[sender removeFromSuperview];}
。为什么我在这个问题上得到-1的声誉?这个网站有时有点迟钝。你的resetAll:selector被调用了吗?为什么不只是调用[sender removeFromSuperview]
?resetAll:
确实被调用了<代码>发送者是事件吗?我想删除的不是UIView
。-(void)resetAll:(UIView*)发送方{[sender removeFromSuperview];}
。为什么我在这个问题上得到-1的声誉?这个网站有时有点迟钝。你的resetAll:selector被调用了吗?为什么不只是调用[sender removeFromSuperview]
?resetAll:
确实被调用了<代码>发送者是事件吗?我想删除的不是UIView
。-(void)resetAll:(UIView*)发送方{[sender removeFromSuperview];}
。为什么我在这个问题上得到-1的声誉?这个网站有时有点迟钝。你的resetAll:selector被调用了吗?为什么不只是调用[sender removeFromSuperview]
?resetAll:
确实被调用了<代码>发送者是事件吗?我想删除的不是UIView
。-(void)resetAll:(UIView*)发送方{[sender removeFromSuperview];}
。为什么我在这个问题上得到-1的声誉?这个网站有时有点迟钝。第一个解决方案不会像resetAll那样工作:方法在UITableViewCell
上调用,并且它没有视图
属性当你说self.view.subviews
时是什么意思?赛尔夫已经是一个UIView的细胞了。它对我有用。谢谢对于(UIView*view in self.view.subview){if([view iskindof class:[StatusView class]]){[view removeFromSuperview];}}第一个解决方案不能像resetAll那样工作:方法是在UITableViewCell
上调用的,并且它没有视图
属性当你说self.view.subview
时是什么意思?赛尔夫已经是一个UIView的细胞了。它对我有用。谢谢对于(UIView*view in self.view.subview){if([view iskindof class:[StatusView class]]){[view removeFromSuperview];}}第一个解决方案不能像resetAll那样工作:方法是在UITableViewCell
上调用的,并且它没有视图
属性当你说self.view.subview
时是什么意思?赛尔夫已经是一个UIView的细胞了。它对我有用。谢谢对于(UIView*view in self.view.subview){if([view iskindof class:[StatusView class]]){[view removeFromSuperview];}}第一个解决方案不能像resetAll那样工作:方法是在UITableViewCell
上调用的,并且它没有视图
属性当你说self.view.subview
时是什么意思?赛尔夫已经是一个UIView的细胞了。它对我有用。谢谢对于(UIView*vie)