我有一个功能,每当我打开控制器为我画UISwitch时我都会打电话。
int y = 0;
for (int i = 0 ; i < daysArray.count ; i++)
{
UISwitch * daysSwitch = [[UISwitch alloc]initWithFrame:CGRectMake(255, y, 20, 20)];
[daysSwitch setTag:i];
[daysSwitch setOn:YES];
[daysSwitch addTarget:self action:@selector(switchPressed:) forControlEvents:UIControlEventValueChanged];
[self.availableTimesScrollView addSubview:daysSwitch];
y = y+ 130;
}
我正在尝试根据标签将其中一些UISwitch设置为On或Off。
UISwitch * switch = (UISwitch *) [self.view viewWithTag:0]
[switch setOn:NO];
但它并没有改变或似乎影响它。
因此,如果这不是让UISwitch的标签设置为开启或关闭的正确答案,我怎样才能得到它?
答案 0 :(得分:1)
您正在将切换添加到self.availableTimesScrollView
,因此在检索时您必须引用该滚动视图:
UISwitch * switch = (UISwitch *) [self.availableTimesScrollView viewWithTag:0]
答案 1 :(得分:1)
视图的默认标记为0.
您已将这些UISwitch
个实例添加到self.availableTimesScrollView
,但在viewWithTag:
上调用了self.view
。此方法将返回具有该给定标记的最近祖先,因此它可能返回self.availableTimesScrollView
。
假设您的视图层次结构如下所示,标记为0的最近祖先是self.availableTimesScrollView
。
self.view
self.availableTimesScrollView (tag 0)
switch1 (tag 0)
switch2 (tag 1)
switch3 (tag 2)
...