CollectionView的cell中按钮的点击实现
参考:http://www.2cto.com/kf/201511/451557.html
1、创建你所需要的Button
2、为了点击这个按钮,我们要根据每一个cell来找到按钮,所以需要在
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
//实现这个方法。找到每一个按钮⬇️⬇️⬇️⬇️
UIButton *deviceImageButton = cell.imageButton;
[deviceImageButton addTarget:self action:@selector(deviceButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
}
3、**重点**
实现按钮的点击。这里是重点,如果这里我们想直接对按钮进行操作,是无法完成的。必须要注意按钮和cell之间的层级关系。如果大家使用了storyboard或者nib,可以打开查看层级关系,由于我这里的cell是代码生成的,无法直观的给大家看。但是它们的层级关系是:Cell-->ContentView-->button. 所以注意的是:我们必须找到该button对应的cell,才能完全确定该button的section和row。所以要注意代码中的两个:superview方法。该按钮的实现代码如下:
- (void)deviceButtonPressed:(id)sender{
UIView *v = [sender superview];//获取父类view
注:(自定义的CollectionViewCell :CollectionViewCell)
CollectionViewCell *cell = (CollectionViewCell *)[v superview];//获取cell
NSIndexPath *indexpath = [self.collectionView indexPathForCell:cell];//获取cell对应的indexpath;
NSLog ----> 打印 section 和 row
4、此时运行程序就可以看到你所需要的section 和 row。