Xib

  • 从文件中读取需要的组件

    • NSArray *bundelArr = [[NSBundle mainBundle]loadNibNamed:@"myCell" owner:nil options:nil]; cell = bundelArr[0]

    • nib其实是一个xib,里面是数组保存了各个组件。

  • 注册nib文件,并且给表格注册可重用的nib

    • 这样做的好处是能简化cell优化的过程,这样在初始化cell的时候就不用判断是否为nil

e.g.

- (void)viewDidLoad {
	[super viewDidLoad];
	UINib *nib = [UINib nibWithNibName:@"myCell" bundle:nil];
	[self.tableView registerNib:nib forCellReuseIdentifier:@"myCell"];
}
  • 在对按钮进行设置target时候,注意判断是否一直在给button加监听时间

e.g.

UIButton *button = (UIButton *)[cell viewWithTag:103];
// 在为按钮添加监听方法前,需要判断按钮是否已经被监听
if ([button allTargets].count == 0) {
	[button addTarget:self action:@selector(buy:forEvent:) forControlEvents:UIControlEventTouchUpInside];
	NSLog(@"监听数量:%d", button.allTargets.count);
}