2012-07-25 5 views
9

iOS의 UITableViewCell 클래스와 userInteractionEnabled 속성으로 매우 이상한 것을 발견했습니다.UITableViewCell 및 userInteractionEnabled와 관련된 이상한 iOS 버그

userInteractionEnabled가 으로 설정되어에 텍스트를 셀 레이블에 할당하기 전에 텍스트가 회색으로 표시되는 것으로 보입니다. 그러나 텍스트가 설정된 이후에 userInteractionEnabled를 NO 으로 설정하면 텍스트 색상이 검정색으로 유지됩니다 (아래 예제 코드 부분 참조).

이것은 셀이 재사용되는 경우 다른 행동으로 끝나는 것을 의미하기 때문에 실제로 이것은 귀찮습니다. 위의 예제는 이것을 보여줍니다 - 테이블의 첫 번째 페이지는 회색/검은 색 텍스트가있는 대체 행을 보여줍니다. 셀이 재사용되도록 더 아래로 스크롤하면 잘못 될 수 있습니다.

내가 뭔가 잘못하고 있는지 궁금한 점이 있거나, 이것이 iOS 버그일까요? iPad 3의 iOS 5.1에서 문제를 봅니다. 통찰력이 정말 감사합니다!

+1

요하는 경우 :

cell.userInteractionEnabled = (indexPath.row % 2) == 0; cell.textLabel.enabled = cell.isUserInteractionEnabled; cell.detailTextLabel.enabled = cell.isUserInteractionEnabled; 

이 대답에 나를 주도 재현 가능한 버그가 있습니다 (특히 몇 가지 예제 코드가있는 경우). Apple에 다음과 같이보고하십시오. https://developer.apple.com/bugreporter/ –

+0

Apple에이 사실을보고했습니다. 아직 아무 소식도 들리지 않았습니다 ... –

답변

1

앞에 cell.textLabel.textColor = [UIColor blackColor];을 넣으면 문제가 해결되는 것 같습니다. 이

cell.textLabel.textColor = [UIColor blackColor]; 
cell.userInteractionEnabled = NO; 
1

가 나는 (I 버그로 간주)이 문제에 대한 더 편리한 해결 방법을 찾을 생각은 아이폰 OS 6.0.1 작업 방법입니다 :

textLabelenabled 속성을 설정하고 detailTextLabel 수동으로 다음과 같이 : https://stackoverflow.com/a/13327632/921573