有没有一种方法我可以从里面的按钮按钮点击事件UICollectionViewCell
? 我用笔尖来填充集合视图,该电池具有按钮,但它的作用是没有得到调用。 我认为这个问题是与委托被调用。 我怎样才能解决这个问题?
如何我创建:
- 添加一个空的笔尖,创建了集合观察室
- 增加了一个h和.m文件,并为该类创建作出的细胞笔尖的文件的所有者
- 写在类的动作。
- 连接按钮的动作
有没有一种方法可以让我得到的动作? 我究竟做错了什么?
有没有一种方法我可以从里面的按钮按钮点击事件UICollectionViewCell
? 我用笔尖来填充集合视图,该电池具有按钮,但它的作用是没有得到调用。 我认为这个问题是与委托被调用。 我怎样才能解决这个问题?
如何我创建:
有没有一种方法可以让我得到的动作? 我究竟做错了什么?
加入这样的按钮操作:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CellId" forIndexPath:[indexPath row]];
[[cell myButton] addTarget:self action:@selector(myClickEvent:event:) forControlEvents:UIControlEventTouchUpInside];
return cell;
}
- (IBAction)myClickEvent:(id)sender event:(id)event {
NSSet *touches = [event allTouches];
UITouch *touch = [touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:_myCollectionArray];
NSIndexPath *indexPath = [_myCollectionArray indexPathForItemAtPoint: currentTouchPosition];
}
你从对象面板拖动“集合视图小区”创建笔尖细胞是很重要的。 如果您使用的UIView,只是改变类的身份检查该单元格,则操作将无法正常工作。
下面是SWIFT 3.1代码
// make a cell for each cell index path
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
// get a reference to our storyboard cell
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! BlueCircleViewCell
// Use the outlet in our custom class to get a reference to the UILabel in the cell
cell.bgImage.image = UIImage(named: items[indexPath.row])
cell.addButton.addTarget(self, action: #selector(addCircle(_:)), for: .touchUpInside)
// cell.backgroundColor = UIColor.cyan // make cell more visible in our example project
return cell
}
func addCircle(_ sender:UIButton){
//CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
let buttonPosition:CGPoint = sender.convert(.zero, to: self.collectionView)
let indexPath:IndexPath = self.collectionView.indexPathForItem(at: buttonPosition)!
onAddBlueCircle(indexPath: indexPath)
}