我在我的 UITableViewCells 中也使用了很多不同的 UI 元素,为什么不尝试继承 UITableViewCell 并滚动你自己的类,将项目作为单元格的属性?似乎对我有用。
在 VincentsAwesomeCell.h 中:
@interface VincentsAwesomeCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UILabel *FooLabel;
@property (weak, nonatomic) IBOutlet UILabel *BarLabel;
@property (weak, nonatomic) IBOutlet UIImageView *ShimmyIcon;
@property (weak, nonatomic) IBOutlet UILabel *DooWopLabel;
@property (weak, nonatomic) IBOutlet UIImageView *UseIcon;
@property (weak, nonatomic) IBOutlet UILabel *TheForceLabel;
@property (weak, nonatomic) IBOutlet UIImageView *bobSledIcon;
@property (weak, nonatomic) IBOutlet UILabel *WristWatchLabel;
@property (weak, nonatomic) IBOutlet UILabel *MeatLoafLabel;
@property (weak, nonatomic) IBOutlet UILabel *SciFiLabel;
@property (weak, nonatomic) IBOutlet UILabel *CollinderLabel;
@property (weak, nonatomic) IBOutlet UILabel *RhubarbLabel;
@property (weak, nonatomic) IBOutlet UITextField *SuperTextField;
@property (weak, nonatomic) IBOutlet UIStepper *stepper;
@property (strong, nonatomic) IBOutlet UILabel *amountOfAwesomeness;
不要忘记使用:
在 VincentsAwesomeCell.m 中:
- (void)prepareForReuse {
[super prepareForReuse];
// Always call this!
// Reset custom stuff
}
重置单元格的属性以供重用。
然后在您的 TableViewController.m 中:
- (void) viewDidLoad
{
[super viewDidLoad];
// Register the custom VincentsAwesomeCell NIB with the tableview
UINib *nib = [UINib nibWithNibName:@"VincentsAwesomeCell" bundle:nil];
[[self tableView] registerNib:nib forCellReuseIdentifier:@"VincentsAwesomeCell"];
}
至于
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
我将它用于 UIStepper 以跟踪按下哪个步进器,例如:
[[cell stepper]setTag:indexPath.row];
[[cell stepper]addTarget:self action:@selector(stepperChanged:) forControlEvents:UIControlEventValueChanged];
希望这可以帮助!
附言
我使用 .xib 文件来创建自定义单元格的布局。只需将 UITableViewCell 拖入 InterFaceBuilder 并自定义即可!不要忘记链接属性!