iOS cell accessoryView设置相同的视图卡住

时间:2018-04-04 08:39:28

标签: ios accessoryview

源代码:

- (void)viewDidLoad {
   [super viewDidLoad];
   [self.view addSubview:self.tableView];
}

- (UITableView *)tableView
{
   if (!_tableView) {
       CGRect frame = self.view.bounds;
       frame.size.height -= (64 + 40);
       _tableView = [[UITableView alloc] initWithFrame:frame  style:UITableViewStyleGrouped];
       _tableView.separatorColor = __color_ListSepatator;
       _tableView.dataSource = self;
       _tableView.delegate = self;
       _tableView.backgroundColor = [UIColor clearColor];
       _tableView.showsVerticalScrollIndicator = NO;
       _tableView.showsHorizontalScrollIndicator = NO;
   }
   return _tableView;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:   (NSInteger)section
{
   return 4;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
   return 1;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
   return 45.0f;
}
/*Here is dalegate*/
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   static NSString *string_id = @"cell";
   UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:string_id];
   if (!cell) {
       cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:string_id];
       cell.selectionStyle = UITableViewCellSelectionStyleNone;
   }

   cell.textLabel.text = [NSString stringWithFormat:@"%ld",(long)indexPath.row];
   /*Here is jammed*/
   cell.accessoryView = self.viewccessory;
   return cell;
}
/*Here is propety*/
- (UIView *)viewccessory
{
   if (!_viewccessory) {
       _viewccessory = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 22, 22)];
       _viewccessory.backgroundColor = [UIColor orangeColor];
   }
   return _viewccessory;
}

问题

当不同的单元重复相同的accessoryView设置时,当我退出控制器时卡住,无法进入界面

每次当控制器卡死了都不知道为什么。为什么accessoryView不能设置相同的视图?请大家帮忙。感谢

1 个答案:

答案 0 :(得分:0)

每个tableview单元格的

accessoryView应该是独立的但不是共享的,在分配到表格视图单元格时,应该在新的视图中创建一个新的视图。

为什么acessoryView无法共享?每个视图应该只有一个超级视图。