UICollectionView 单元格的自定义委托 - 自定义按钮不起作用
Posted
技术标签:
【中文标题】UICollectionView 单元格的自定义委托 - 自定义按钮不起作用【英文标题】:Custom Delegate For UICollectionView Cell - Custom Button Not working 【发布时间】:2014-08-11 08:22:52 【问题描述】:我有一个从 UIcollectionViewCell 子类化的自定义单元格。通过代码,我创建了按钮并使用同一类中的目标方法添加到单元格中。
按钮事件工作正常。但我需要控制我创建 UICollectionView 的基本视图。
为此,我创建了自定义委托来识别点击事件。
---> DBDraggingCell.h 文件
@protocol DBDraggingCellDelegate <NSObject>
-(void)chartButtonpressed:(id)sender;
-(void)accountHistoryButtonpressed:(id)sender;
-(void)transactionHistoryButtonpressed:(id)sender;
@end
@interface DBDraggingCell : UICollectionViewCell
UIButton *chartButton;
UIButton *accSummaryButton;
UIButton *transactionHistory;
/////////////////////////////////////
-(void)chartPressed:(UIButton *)sender
[_delegate chartButtonpressed:sender];
_delegate returns nil
----> In baseview i have set the delegate
[self addSubview:_theCollectionView];
_theCollectionView.delegate=self;
Not working
The methods inside the baseview not called
【问题讨论】:
【参考方案1】:您的collectionView中似乎没有设置单元格委托
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
DBDraggingCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:DBDraggingCellIdentifier forIndexPath:indexPath];
cell.delegate = self;
....
【讨论】:
【参考方案2】:您的基本视图是 UICollectionView 实例,不是吗?
如果你的基础视图是 UICollectionView,你必须在加载单元方法中设置 DBDraggingCell 的委托- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
例如:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
DBDraggingCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:YOUR_CELL_IDENTIFIER forIndexPath:indexPath];
// Set DBDraggingCell' delegate here
cell.delegate = self;
【讨论】:
【参考方案3】:确保您的委托属性对应于您在执行委托方法时使用的变量_delegate。最好在可以帮助您避免此类问题的任何地方使用该属性。
【讨论】:
以上是关于UICollectionView 单元格的自定义委托 - 自定义按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章
UICollectionView 中有两个自定义单元格,但第二个单元格的大小不正确
下载内部图像后调整 UICollectionView 单元格的大小
在 UITableView 中嵌入的自定义 UICollectionView 中执行 Segue