iOS cell accessoryView set the same view stuck

46 Views Asked by At

The source code:

- (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;
}

Question

When different cell repeat the same accessoryView Settings, getting stuck when I was out of the controller, can't into the interface

Each time when the controller card dead don't know why.Why can't accessoryView set the same view?Ask everybody to help. Thanks

1

There are 1 best solutions below

1
cxa On

accessoryView for each tableview cell should be independent but not shared, you should make a new view very time when assigning to table view cell.

Why acessoryView can't be shared? Each view should only has one superview.