2013-04-12 2 views
-1

셀을 재사용하는 UITableView가 있습니다. 내 탁자에있는 세포 중 일부는 다른 것보다 약간 다른 높이입니다. 셀을 재사용 할 때 테이블 뷰는 이전의 높이에서 셀을 추가 한 다음 새로운 높이로 애니메이트하는 것처럼 보입니다. 나는 이것을하기를 원하지 않는다!UITableViewCell 재사용

나는 layoutSubviews와 prepareForReuse 주위에 CATransactions를 두어 보았습니다. 어느 쪽도 레이아웃을 수행하고 동작을 비활성화하지만이 문제는 해결되지 않았습니다.

셀은 모두 거의 동일하지만 상단/하단/중간 어딘가에 있는지에 따라 상단 및 하단에 다른 양의 패딩이 있습니다.

여기에 실종 된 멋진 트릭이 있습니까?

도움 주셔서 감사합니다.

+1

다른 종류의 셀에 다른 * reuseIdentifiers *를 사용하고 있습니까? * @ "smallCell"*, * @ "largeCell"* 등과 같은? – rdurand

+0

현재 저는 문제없이 셀을 재사용 할 수있을 것이라고 생각했지만 그렇게해야 할 수도 있습니다. –

+0

질문을 편집하고 마지막 수정 사항을 삭제하십시오. 스스로 문제를 해결했다면 자신의 질문에 답하고 대답에 동의하십시오. 질문 자체에 질문에 대답해서는 안됩니다. 감사. – rdurand

답변

0

셀의 재사용이 아니라 행 삽입에 애니메이션 효과가있는 것으로 나타났습니다. UITableViewRowAnimationNone을 사용하면 여전히 셀의 삽입이 애니메이션으로 나타납니다. 비활성화 된 액션으로 CATransaction에 셀을 삽입하라는 호출을 래핑하면 문제가 해결됩니다. :)

미안 해요!

1

이것은 실제로 속임수가 아니지만, tableView:heightForRowAtIndexPath:은 셀이 어떤 높이가되어야 하는지를 테이블보기에 알리게합니다.

+0

응답 해 주셔서 감사합니다. 그러나 실제로이 방법을 구현하고 있습니다. –

+0

그런 다음 모든 tableview 데이터 소스 메서드에 대한 코드를 게시하여 잘못된 작업을 볼 수 있습니다. – Lefteris

1

모든 행의 높이를 반환하려면 heightForRowAtIndexPath을 사용하십시오.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    return 49; 
} 
+0

응답 해 주셔서 감사합니다.하지만 실제로이 메서드를 구현하고 있습니다. –

관련 문제