Hinzufügen eines UIButton zu einem UICollectionView Zelle programmgesteuert

Ich habe einen UIViewController mit einem UICollectionView innerhalb programmgesteuert. Ich möchte eine Schaltfläche hinzu, die die Zelle:

viewDidLoad:

UICollectionViewLayout *layout = [[UICollectionViewFlowLayout alloc]init];
_collectionView = [[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:layout];

    [_collectionView setDataSource:self];
    [_collectionView setDelegate:self];

    [_collectionView registerClass:[EMCell class] forCellWithReuseIdentifier:@"Cell"];

    [self.view addSubview:_collectionView];

Dann:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
    EMCell *cell = (EMCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];

    cell.backgroundColor = [UIColor greenColor];

    UIButton *button = (UIButton *)[cell viewWithTag:200];
    [button setFrame:CGRectMake(10, 10, 50, 60)];
    [button setTitle:@"Button" forState:UIControlStateNormal];

    [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];

    [cell addSubview:button];
    return cell;
}

Was mache ich falsch?

  • Was ist der Fehler???
  • Sie sind das hinzufügen einer Schaltfläche, um die Zelle jedes mal, wenn es verwendet wird. Verstehen Sie, dass die Zellen Holen, die wiederverwendet werden, richtig? Warum gehst du nicht fügen Sie einfach die Schaltfläche in Ihrem EMCell Klasse init Methode?
  • die Schaltfläche wird nicht angezeigt.
  • Auch, Sie sollten hinzufügen der Schaltfläche, wie eine Untersicht cell.contentView.
  • hinzufügen der Schaltfläche, wie eine Untersicht con contentView der Zelle, und initialisieren Sie die Schaltfläche in der Zelle init-Methode mein problem gelöst. Vielen Dank.
Schreibe einen Kommentar