0

カスタムUITableViewCellsを備えたUITableViewがあります。セルにはカスタム ビューが含まれています。これは、SSCheckBoxView (GitHub で入手可能) のわずかに変更されたバージョンです。

TableView 内をスクロールすると、セルが画面から消えると、カスタム ビューが再び表示されるときに切り取られます。

セルをスクロールする前は、次のようになっています: https://www.dropbox.com/s/hcyvgumhr7t1fxg/before.png

これは、ビューが再表示されたときの様子です: https://www.dropbox.com/s/p6wirtj60ffssxm/after.png

これが私のTableViewControllerのcellForRowAtIndexPathメソッドです

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *myIdentifier = @"CarpartTableViewCell";

    CarpartTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:myIdentifier];

    if (cell == nil) {
        cell = (CarpartTableViewCell*) [[[NSBundle mainBundle] loadNibNamed:@"CarpartTableViewCell" 
                                                           owner:self 
                                                         options:nil] objectAtIndex:0];
    }

    cell.delegate = self;
    cell.tag = indexPath.row;

    Carpart *part = [_parts objectAtIndex:indexPath.row];

    cell.carpart.text = part.name;

    [cell.checkboxMaterial setText:@"Alubauteil"];
    [cell.checkboxPushing setText:@"Vordrücken"];

    cell.checkboxMaterial.checked = part.material.boolValue;
    cell.checkboxPushing.checked = part.pushing.boolValue;

    cell.checkboxPushing.tag = indexPath.row;
    cell.checkboxMaterial.tag = indexPath.row;

    [cell.checkboxMaterial setStateChangedTarget:self selector:@selector(materialChanged:)];
    [cell.checkboxPushing setStateChangedTarget:self selector:@selector(pushingChanged:)];

    return cell;
}
4

0 に答える 0