子类UIView没有得到标记集
问题描述:
我已经子类UIView
类,我创建了一个循环中的这个类的多个实例(每次递增),但是当我尝试设置视图的标记,并将其记录到控制台完成创建后,它们全都具有1的标记,而不管我将标记设置为什么。子类UIView没有得到标记集
任何帮助将不胜感激,谢谢!
我创建的子视图代码是在这里:
//for() loop above with i as counter
FlashCardView *subview = [[FlashCardView alloc] initWithFrame:frame];
subview.delegate = self;
subview.viewNum=i+10; //My attempt at a workaround but I cannot get the view with this later so it is not very helpful
[subview setTag:i+10]; //Tried this and subview.tag=i+10;
NSLog(@"%d", subview.tag); //Prints correctly
//Gets added to parent later
这NSLog
登录正确的标签,但是当我登录的UIView
子类的标签,它总是返回其作为1
标签。另外,如果我以后面调用的方法(在viewcontroller
中)打印所有父级子视图,则它们全都具有标记1.
答
我不能告诉你为什么,但我可以告诉你如何找到问题。在你FlashCardView子类,添加这个方法:
- (void)setTag:(NSInteger)theTag
{
assert(theTag != 1);
[super setTag:theTag];
}
然后,无论是标签设置为1它,断言将火,你可以看看堆栈跟踪,看看它的来源。
或者,删除断言,并在超级消息上放置断点。
PS:确保启用异常!
+0
感谢您的提问,以后可能会有所帮助,并且还会让我找到我无意中再次设置标记的位置。将标记为答案:) – 2013-04-05 13:37:08
答
嗨,感谢您的帮助,我发现当我打算放入其他东西时,我意外地输入了子类的变量,将标记设置为1. @Sunny,谢谢你让我仔细检查。
包括您的代码与for循环 – 2013-04-05 12:04:31
意味着一些代码中的其他地方可能是标记值更新一旦检查您的代码。 – Balu 2013-04-05 12:11:37
请发布有关'从父视图获取视图'的代码 – 2013-04-05 12:12:35