iOS tableViewCell이 자동으로 높아지면 UI 예외가 발생할 수 있습니다.

1172 단어
1. tableViewCell 자동 높이 변경
방안: autolayout을 빌려 실현하기 쉬우며,cell만 스스로 autolayout에 따라 자신의 높이를 정할 수 있으면 된다.scrollView의 ContentSize와 유사한 방법입니다.여기에는 군말이 많지 않다.
Code:
self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 100;//         ,      

2. tableViewCell이 자동으로 높아지면 발생할 수 있는 UI 문제
2.1 더 많은 데이터를 불러온 후(특히reloadData 후) 나타날 수 있는 클릭 상태 표시줄이 정상으로 되돌아오지 않아 거리가 멀다.
원인예상된 행 높이 캐시에 문제가 있을 수 있습니다.해결 방법: 캐시 cell 높이
@property (nonatomic, strong) NSMutableDictionary *heightAtIndexPath;//        

 -(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSNumber *height = [self.heightAtIndexPath objectForKey:indexPath];
    if(height)
    {
        return height.floatValue;
    }
    else
    {
        return 100;
    }
}
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:    
  (NSIndexPath *)indexPath
{
    NSNumber *height = @(cell.frame.size.height);
    [self.heightAtIndexPath setObject:height forKey:indexPath];
}

참조:https://www.jianshu.com/p/64f0e1557562

좋은 웹페이지 즐겨찾기