问题如题,原理很简单,只要在cell中给对应的button添加操作事件就好了。
示例代码如下:
navigationTableCell.h1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
#import <UIKit/UIKit.h>
@interface navigationTableCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UIButton *directorBtn; @property (strong, nonatomic) IBOutlet UIButton *writerBtn; @property (strong, nonatomic) IBOutlet UIButton *performerBtn; @property (strong, nonatomic) IBOutlet UIButton *otherBtn;
@property (strong, nonatomic) IBOutlet UIButton *chancePerformerBtn; @property (strong, nonatomic) IBOutlet UIButton *chanceOtherBtn;
@end
|
navigationTableCell.m1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
#import "navigationTableCell.h"
@implementation navigationTableCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { } return self; }
- (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated];
}
@end
|
功能实现过程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| -(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSUInteger row = [indexPath row]; if(row == 0) { static NSString *navigationTableCellIdentifier = @"navigationTableCell"; UINib *navigationTableCellNib = [UINib nibWithNibName:@"navigationTableCell" bundle:nil]; [_dataTable registerNib:navigationTableCellNib forCellReuseIdentifier:navigationTableCellIdentifier]; navigationTableCell *cell = [self.dataTable dequeueReusableCellWithIdentifier:navigationTableCellIdentifier]; if(cell == nil) { cell = [[navigationTableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:navigationTableCellIdentifier]; } [cell.directorBtn addTarget:self action:@selector(directorPush:) forControlEvents:UIControlEventTouchUpInside]; [self giveButtonDrawCorner:cell.directorBtn]; [cell.writerBtn addTarget:self action:@selector(writerPush:) forControlEvents:UIControlEventTouchUpInside]; [self giveButtonDrawCorner:cell.writerBtn]; [cell.performerBtn addTarget:self action:@selector(performerPush:) forControlEvents:UIControlEventTouchUpInside]; [self giveButtonDrawCorner:cell.performerBtn]; [cell.otherBtn addTarget:self action:@selector(otherPush:) forControlEvents:UIControlEventTouchUpInside]; [self giveButtonDrawCorner:cell.otherBtn]; [cell.chancePerformerBtn addTarget:self action:@selector(chancePerformerPush:) forControlEvents:UIControlEventTouchUpInside]; [self giveButtonDrawCorner:cell.chancePerformerBtn]; [cell.chanceOtherBtn addTarget:self action:@selector(chanceOtherPush:) forControlEvents:UIControlEventTouchUpInside]; [self giveButtonDrawCorner:cell.chanceOtherBtn]; return cell; } static NSString *cellIdentifier = @"cellIdentifier"; UITableViewCell *cell = [self.dataTable dequeueReusableCellWithIdentifier:cellIdentifier]; if(cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; } NSDictionary *dic = [self.dataDic objectForKey:[NSString stringWithFormat:@"%d",row]]; CGRect cellFrame = [cell frame]; cellFrame.size.height = 50.0; [cell setFrame:cellFrame]; cell.textLabel.text = [dic valueForKey:@"title"]; cell.textLabel.font = [UIFont systemFontOfSize:18.0]; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; return cell; }
|