首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iOS中以编程方式在循环中创建多个UISwitches?

如何在iOS中以编程方式在循环中创建多个UISwitches?
EN

Stack Overflow用户
提问于 2012-05-21 19:17:56
回答 2查看 755关注 0票数 1

我已经完成了以下代码,用于以编程方式创建多个UISwitches并处理特定的开关。

代码语言:javascript
复制
for (int i =0; i < 3; i++) {

    CGRect frame = CGRectMake(x, y, height, width);
    UISwitch *switchControl = [[UISwitch alloc] initWithFrame:frame];

    //add tag as index 
    switchControl.tag = i;
    [switchControl addTarget:self action:@selector(flip:) forControlEvents: UIControlEventValueChanged];

    [switchControl setBackgroundColor:[UIColor clearColor]];
    [self.view addSubview:switchControl];

    y= y+50.0;
}

- (IBAction) flip: (id) sender {
    UISwitch *onoff = (UISwitch *) sender;
    NSLog(@"no.%d %@",onoff.tag, onoff.on ? @"On" : @"Off");
    //use onoff.tag , you know which switch you got 
}

完成这段代码后,我希望当UIButton选择全部单击时,将所有UISwitches设置为打开。多么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-21 19:25:14

要将它们全部设置为ON,我会将它们保存在一个数组中,以便于访问。然后你可以这样做:

代码语言:javascript
复制
for (int i = 0; i < [switchArray count]; i++) {
  UISwitch *sw = (UISwitch *)[switchArray objectAtIndex:i];
  [sw setOn:YES];
}

你也可以这样做:

代码语言:javascript
复制
for (int i = 0; i < 3; i++) {
  UISwitch *sw = (UISwitch *)[self.view viewWithTag:i];
  [sw setOn:YES];
}

只要确保标签是唯一的即可。

希望能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2012-05-21 19:29:49

使用这个东西,请以100或1000开头的标签号

代码语言:javascript
复制
-(void) selectAll {
for(int i=100;i<(100+3);i++){
UISwitch *refSwitch=[self.view viewWithTag:i];
refSwitch.on=YES;
}
}

这对你来说很有用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10684200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档