2016-09-21 3 views
0

UITableView에 셀이 있습니다. 셀의 클래스는 UITableViewCell입니다. 이 클래스에서 프로그래밍 방식으로 몇 개의 단추를 추가합니다.프로그래밍 방식으로 추가 된 버튼의 문제

참고 : 셀은 테이블보기의 맨 끝에 있습니다.

문제 : 시뮬레이터 iphone 5를 사용하는 경우 버튼이 표시됩니다. 하지만 시뮬레이터 iphone 6+를 사용하고 있으면 버튼이 표시되지 않습니다.

참고 : iphone 5에서 열 때 해당 특정 셀을 스크롤해야합니다. iphone 6 이상에서는 스크롤 할 필요가 없습니다. 셀을 바로 볼 수 있습니다.

그래서이 문제는 여기 어딘가에 있다고 생각합니다. 내가 '버튼 추가'를하는 곳일 수도 있습니다.

어디에서 버튼을 설정하는 메소드를 호출해야합니까? 또는이 문제를 어떻게 해결할 수 있습니까?

+0

단추 추가 프로그래밍 방식으로 "cellForRowAtIndexPath"메서드를 사용하고 셀에 추가 –

+8

일부 코드를 표시해야합니다. 그것을 어디에 추가합니까? 셀을 청소합니까 (특히 재사용 되었기 때문에)? – Larme

+2

[코드로 인해 발생하는 문제에 대해 질문하는 경우 사람들이 문제를 재현하는 데 사용할 수있는 코드를 제공하면 훨씬 더 좋은 답변을 얻을 수 있습니다.] – swiftBoy

답변

0

TL : 테이블보기에 다른 셀 유형이있는 경우 식별자가 다른지 확인해야합니다.

설명 :

테이블 셀이 UITableView에서 재사용되고, 테이블이 먼저 표시 될 때 아직 재사용 셀이 없을 것이다. UITableViewDataSource 프로토콜을 통해 데이터 소스를 호출하여 표시 할 셀을 가져옵니다.

셀을 제공하는 것은 새 테이블을 만들기 전에 (특정 유형의) 재사용 가능한 셀이 있는지 먼저 테이블보기에 요청합니다. 특정 유형을 판별하는 방법은 표 셀의 reuseIdentifier입니다.

두 개의 서로 다른 클래스의 표 셀을 사용하지만 동일한 reuseIdentifier을 공유하는 경우 가끔씩 하나의 클래스와 다른 클래스를 얻을 수 있습니다. 버튼이 없을 때 버튼이없는 경우이 클래스를 얻으면 문제가된다!

답변은 다른 세포 유형이 고유 한 reuseIdentifier인지 확인하는 것입니다.

관련 문제