0

UISwitches を含む TableView があります。スイッチは画面からわずかに外れています。表示を正しく行うにはどうすればよいですか。

スイッチ

これがスイッチを表示する私のコードです。

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *CellIdentifier = @"POICell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    if(!cell){

    //set the cell text to the
    cell.textLabel.text = [self.catNames objectAtIndex:[indexPath row]];
    NSString *toggle = [self.toggleArray objectAtIndex:[indexPath row]];
    //add switch
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

    UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero];
    cell.accessoryView = switchView;

    if ([toggle isEqualToString: @"OFF"]) {
        [switchView setOn:NO animated:NO];
    }else{
        [switchView setOn:YES animated:NO];
    }


    [switchView addTarget:self action:@selector(switchChanged: ) forControlEvents:UIControlEventValueChanged];
    // Configure the cell...

    }
    return cell;
}
4

2 に答える 2

-1

TableViewCellは多くの状況で位置を変更するため、デフォルトのaccessoryViewの位置は問題なく移動できないと思います。

したがって、デフォルトの動作を「ハック」しようとするのではなく、サブビューとして追加することをお勧めします。

于 2012-11-01T16:56:43.020 に答える