出于某种原因,我似乎无法在不删除所有UIButton的情况下删除UIImageView。所有子视图都添加到我的主视图_ourView和UIButtons没有给出标签(默认为0),我的图像被赋予了tag = 5.
当我打电话
NSInteger o = [obj intValue]; //This is the letter "O" not 0, and o = 5 in this case (which is what my subview tag is)
UIView *hangmanView = [_ourView viewWithTag:o];
[hangmanView removeFromSuperview];
[_ourView setNeedsDisplay];
我的所有按钮也会消失。
任何指针?
编辑:如果您想查看更多代码,我已将我的项目上传到github。以下是文件的链接:https://github.com/elayman/Hangman/blob/master/Hangman/HangmanViewController.m#L172答案 0 :(得分:1)
您已将按钮添加到图像视图中,或者与该标记匹配的视图是按钮的超级视图。
在调试器中检查标记值是什么(可能不是您认为的那样)以及viewWithTag返回的视图是什么。
无论如何,标签在大多数情况下都是无用的。为什么不使用插座或插座集合,它更加明确和可读。
答案 1 :(得分:0)
0是标签的默认值...所以第一个视图没有标签,这可能不是你想要的。
记录您删除的内容,以便了解实际发生的情况:
NSLog(@"removing %@", hangmanView)
答案 2 :(得分:0)
想到我在将它们添加到superview之后意外地释放了我的按钮,所以它们在setNeedsDisplay之后消失了。谢谢你的帮助。我只是对Objective c的新手,并认为addSubview消息将subView的控制权交给了superView。