カスタム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;
}