QuestionViewCell.h文件代码,定义代理协议
objectivec
@protocol QuestionViewCellDelegate <NSObject>
- (void)cellIsOpenDidChangeAtIndexPath:(NSIndexPath *)indexPath;
@end
@interface QuestionViewCell : UITableViewCell
@property (nonatomic, weak) id<QuestionViewCellDelegate> delegate;
@end
QuestionViewCell.m文件调用代理代码
objectivec
#import "QuestionViewCell.h"
@interface QuestionViewCell ()
@end
@implementation QuestionViewCell
- (void)awakeFromNib {
[super awakeFromNib];
[FontSizeUtil setupWidgets:@[self.titleLabel, self.contentLabel]
pingfangWithFontSizes:@[@12, @11]];
}
- (IBAction)openClickAction:(id)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(cellIsOpenDidChangeAtIndexPath:)]) {
[self.delegate cellIsOpenDidChangeAtIndexPath:self.indexPath];
}
}
@end
UITableView设置代理对象
objectivec
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {、
QuestionViewCell *cell = [tableView dequeue:QuestionViewCell.class forIndexPath:indexPath];
cell.indexPath = indexPath;
cell.delegate = self;
return cell;
}
ViewController.m 委托者实现代理协议
objectivec
@interface TestViewController ()
<QuestionViewCellDelegate,
UITableViewDelegate,
UITableViewDataSource>
@end
@implementation TestViewController
#pragma mark - QuestionViewCellDelegate
- (void)cellIsOpenDidChangeAtIndexPath:(NSIndexPath *)indexPath {
//刷新Row行
[self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
@end