0
我有UICollectionView,並在每個單元上我想添加一個按鈕。點擊此按鈕時,我想刪除特定索引處的單元格。問題是,我不知道如何傳遞選定的索引。這裏是我的cellForRow ..方法:通過選擇器傳遞單元索引路徑
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
IndexGridCollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
NSString *str = self.viewModel.arrValues[indexPath.row];
[cell bindViewModel:str];
cell.backgroundColor = [UIColor grayColor];
UIButton *button = [UIButton buttonWithType:UIButtonTypeContactAdd];
[button addTarget:self
action:@selector(aMethod)
forControlEvents:UIControlEventTouchUpInside];
[cell addSubview:button];
[button mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(cell.mas_left).with.offset(0);
make.top.equalTo(cell.mas_top).with.offset(0);
make.width.height.equalTo(@(20));
}];
return cell;
}
所以基本上我想通過指數throught action:@selector(aMethod)
。怎麼做?
你不能因爲方法簽名固定傳遞到amethod方法。你可以使用按鈕的標籤,因爲按鈕將作爲發送者發送給aMethod(選擇器將需要成爲'aMethod:'而不是'aMethod',但更簡潔的方法是按鈕成爲'IndexGridCollectionCell'的一部分,並且使用授權將按鈕操作返回給您的視圖控制器。 – Paulw11