我在 Xcode 4.6 中有一个应用程序。在一个视图控制器中,我有一个集合视图。通过用户与视图的交互将单元格添加到视图中。这工作正常。然后,我想向每个单元格添加一个按钮(以编程方式),以允许删除该单元格。我希望按钮位于每个单元格的右上角。问题是按钮出现在集合视图第一行中所有单元格的每个单元格内的所需位置(再次,右上角),但随后出现在第一行之后的所有单元格的单元格之外。见下图:
我的按钮创建方法是:
-(CollectionViewCellButton *)makeDeleteButtonForCell:(UICollectionViewCell *)cell
{
CollectionViewCellButton *button = [CollectionViewCellButton buttonWithType:UIButtonTypeCustom];
CGSize newImageSize = CGSizeMake(cell.frame.size.width/2.5, cell.frame.size.height/2.5);
UIImage *image = [SeeYourAlbumViewController imageWithImage:[UIImage imageNamed:@"delete"] scaledToSize:newImageSize];
CGFloat width = image.size.width;
CGFloat height = image.size.height;
CGFloat X = cell.frame.size.width - width;
CGFloat Y = cell.frame.origin.y;
button.frame = CGRectMake(X, Y, width, height);
[button setImage:image forState:UIControlStateNormal];
[button addTarget:self
action:@selector(deleteCollectionViewCell:)
forControlEvents:UIControlEventTouchUpInside];
return button;
}
上面的方法在我的cell创建方法中调用如下:
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [collectionView
dequeueReusableCellWithReuseIdentifier:@"newCell"
forIndexPath:indexPath];
//CALLED HERE!!
CollectionViewCellButton *cellButton = [self makeDeleteButtonForCell:cell];
cellButton.indexPath = indexPath;
[cell addSubview:[self.pictures objectAtIndex:indexPath.row]];
[cell addSubview:cellButton];
return cell;
}
谁能建议我可能做错了什么?