新手
- 在给cell的accessoryView赋值时发现每个辅助视图都要创建一个view,每个view又都相同,然后我就想能不能只创建一次,给每个cell都赋值同一个view,于是就有了如下代码:
/**
* 其中有一部分是在storyboard中完成的
*/
@interface XSPTableViewController ()
//每个cell的辅助视图都为arrowView
@property (nonatomic, strong) UIImageView *arrowView;
@end
@implementation XSPTableViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
//懒加载
- (UIImageView *)arrowView
{
if (_arrowView == nil) {
_arrowView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrow_right"]];
}
return _arrowView;
}
#pragma mark - Table view data source
//一共10个Cell
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 10;
}
//返回每个cell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
XSPTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
cell.accessoryView = self.arrowView;
return cell;
}
@end
*** 然后,他就死掉了!!! 内存暴涨 ***
如图:
- 但是xcode有没有触发异常,内存都占用了400多M,还是没有报异常
- 最后自定义一个cell,然后重写了好多方法,发现程序在layoutSubviews方法中死循环
- 代码如下:
@implementation XSPTableViewCell
- (void)layoutSubviews
{
[super layoutSubviews];
NSLog(@"%s", __func__);
}
@end