2010-01-10 5 views
0

iPhone SDK 3.1.2에서 작업하는 동안이 이상한 문제가 발생했습니다.UITableViewCell의 이상한 문제 : UILabel이 다른 것으로 바뀌 었습니까?

내있는 UITableViewCell 3.

http://img.skitch.com/20100109-gdg9f57999gne3psqmmb3y4nb1.png

문제는 첫째 UILabel의 (위의 스크린 샷에서 강조) 함께 1에서 숫자 태그를 할당 각각 3 UILabel의를 포함 : 나는 드릴 수 없습니다 텍스트를 설정합니다. NSLog의 내용조차도 (null)입니다.

흥미로운 점은 UILabel의 클래스 이름을 인쇄하려고했을 때 대신 UITableViewCell을 얻었습니다. 다른 번호로이 특정 UILabel의의 태그를 변경

http://img.skitch.com/20100110-7jfgipbiskbc9xm68pt3mqfqi.png

(예를 들어 4)가 제대로 작동합니다. 얼마나 이상한 지.

누구나 아이디어가 있습니까?

+1

Interface Builder에서 'UITableViewCell' 요소를 클릭하여 사용중인'tag '값을 확인 했습니까? –

+0

아, 1로 설정됩니다. 0으로 변경해도 문제가 해결되지 않습니다. –

+0

UITableViewCell에는 자동으로 액세서리보기 및 물건에 대한 몇 가지 하위보기가 있으므로 그 중 하나가 이미 동일한 태그 또는 다른 태그를 사용하고 있습니까? – Nimrod

답변

1

인터페이스 작성기에서 셀을 작성 중이므로 어쨌든 태그를 사용하지 않습니다. 난 그냥 MyCell 또는 뭔가 UITableViewCell 하위 클래스, 테이블 셀 클래스를 MyCell로 변경 한 다음 Subviews 연결할 수있는 MyCell에서 일부 IBOutlets 선언하십시오. 또한이를 통해 셀의 일부 편리한 메소드/속성을 정의 할 수 있습니다.

그런 다음 태그를 잊어 버리고 myCellInstance.nameLabel.text = @ "Joebob Briggs"또는 무엇이든 할 수 있습니다.

+0

서브 클래스 할 필요가 없습니다. @gcamp가 정확하면'cell.contentView'에서 레이블을 찾을 수 있습니다. –

+0

글쎄, 필요하지 않을 수도 있지만 나에게 태그 물건은 수동으로 몇 가지 상수를 동기화해야하기 때문에 최후의 수단과 같습니다. 태그 넘버를 사용한다면 적어도 "#define kNameLabelTag 1"과 같은 것들을 어딘가에 추가하여 동기화를 유지하십시오. 불행히도 IB는 태그에 정의 된 타입을 입력하지 않지만 자동으로 IBOutlet을 동기화합니다. – Nimrod

4

보기 자체가 아닌 cell.contentView을 확인해야합니다. :)

관련 문제