2016-06-30 1 views
0

샘플 프로젝트 :http://d.pr/f/Tkld삽입 애니메이션을 사용할 때 UITableViewCell의 내용이 다른 셀과 겹치지 않게하려면 어떻게해야합니까?

나는 매우 간단 유일한 하위 뷰 같은 단일 UIDatePicker 볼 수있는 UITableViewCell 서브 클래스가 있습니다.

Like Calendar.app 사용자가 셀을 탭하면 인라인 날짜 선택기를 표시하려고합니다. 이 작업을 수행하는 코드는 잘 작동합니다 (자동 레이아웃을 사용하여 높이를 계산하면 완벽하게 커집니다). 그러나 셀이 커지면서 날짜 선택 도구가 다른 내용과 겹치게되어 매우 이상하게 보입니다.

다음 스크린 샷에서 날짜 선택 도구 가운데 오른쪽에 "One More Cell"애니메이션이 적용된 것을 볼 수 있습니다.

enter image description here

어떻게이 문제를 방지합니까? 셀, 셀의 contentView 및 날짜 선택 도구 자체에는 모두 clipsToBounds이 있으므로이 작업을 수행하는 방법과 수행해야 할 작업을 모릅니다.

가능한 한 가장 작은 시나리오에서 위의 샘플 프로젝트를 첨부했습니다. Simulator에서 "Slow Animations"(Debug> Slow Animations)에서 가장 쉽게 볼 수 있습니다. 여기에서 날짜 선택기 셀이 애니메이션의 경계를 벗어나는 것을 볼 수 있습니다.

답변

0

tableView(_:heightForRowAtIndexPath:)을 구현하고 날짜 선택기 셀의 셀 높이를 더 크게 설정해보십시오. 샘플 프로젝트에서 나는 그것을 보지 못했습니다. 이렇게하면 표시 될 때 세포의 높이가 적절한 지 확인할 수 있습니다.

+0

'heightForRowAtIndexPath'는 자동 레이아웃 셀에 필요하지 않으며 실제로는'UITableViewAutomaticDimension'을 반환하고 셀의 제약 조건을 기반으로 계산합니다. 가치가있는 부분에 대해서는 자동 레이아웃 대신 프레임 계산 만 사용하고 결과는 동일합니다. –

+0

흥미 롭습니다. 전에 사용하지 않았습니다. 나는 프로젝트를 실행하고 예상대로 작동한다 (iPhone 6, 9.3)! 어떤 버전/시뮬레이터를 사용 했습니까? – Wyatt

+0

느린 애니메이션 (Debug> Slow Animations 또는 command-T)을 켜면 볼 수 있습니다. 나는 또한 아이폰 6s 시뮬레이터 iOS 9.3을 시도했다. –

관련 문제