在我的应用程序中,我必须同时绘制某些复选框,并使用单个函数添加所有这些复选框。现在,当用户点击其中一个时,所有这些复选框都应从超级视图中删除,目前它只是删除最后一个。此外,我有问题识别那些复选框,如单击哪一个。我知道它应该通过Tag属性完成,但不知道应该如何实现它。 任何建议。
答案 0 :(得分:0)
删除所有子视图
int numberOfSubviews = [[yourView subviews] count];
for(int i=0;i<numberOfSubviews-1;i++
{
[[youView subviews]objectAtIndex:i]removeFromSuperView];
}
//这将留下您最后添加的复选框....第一个保留1 to numberOfSubview
的循环....
使用标签属性...... 在创建复选框对象时使用
checkBoxObject.tag = i;
//我正在考虑我在循环中使用的looop计数 添加复选框。
然后,只要您需要checkbox
[yourViewonwhichYouAddedCheckBox viewWithTag:<your tag >];
由于
答案 1 :(得分:0)
用于识别“复选框”或更好地表示动作方法中的任何视图:
- (void)someActionHandler:(id)sender
{
UIView *actionOriginView = (UIView *)sender;
NSLog(@"this action came from view:%d", actionOriginView.tag);
}
为了分配标签,您可以在实例化时使用IB或代码;
UIView *myFunkyView = [[UIView alloc] initWithFrame:CGRectZero];
myFunkyView.tag = 1337;
从超级视图中删除一堆视图 - 假设他们的标记设置为10 - 15;
for (int i=10;i <= 15;i++)
{
UIView *childView = [superview viewWithTag:i];
[childView removeFromSuperview];
}