ios UISwitch in a UITableView cell

来源:互联网 发布:巨杉数据库怎么样 编辑:程序博客网 时间:2024/05/16 11:36
文章来源:http://stackoverflow.com/questions/3770019/uiswitch-in-a-uitableview-cell

Setting it as the accessoryView is usually the way to go. You can set it up intableView:cellForRowAtIndexPath: You may want to use target/action to so something when the switch is flipped. Like so:


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {    switch( [indexPath row] ) {        case MY_SWITCH_CELL: {            UITableViewCell* aCell = [tableView dequeueReusableCellWithIdentifier:@"SwitchCell"];            if( aCell == nil ) {                aCell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"SwitchCell"] autorelease];                aCell.textLabel.text = @"I Have A Switch";                aCell.selectionStyle = UITableViewCellSelectionStyleNone;                UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero];                aCell.accessoryView = switchView;                [switchView setOn:NO animated:NO];                [switchView addTarget:self action:@selector(switchChanged:) forControlEvents:UIControlEventValueChanged];                [switchView release];            }            return aCell;        }        break;    }    return nil;}- (void) switchChanged:(id)sender {    UISwitch* switchControl = sender;    NSLog( @"The switch is %@", switchControl.on ? @"ON" : @"OFF" );}