왜 이런 일이 발생합니까? 내 문자열에서 줄 바꿈을 사용하기 때문에?
셀의 contentView에 레이블을 추가했기 때문에 문제가되는 것은 아닙니다. 삭제 단추가 나타나면 contentView가 자동으로 크기가 조정되고 autoresizingMask가 UIViewAutoresizingFlexibleWidth
으로 설정되어 있으므로 UITableViewCell의 textLabel도 크기가 조정됩니다. 불행히도 우리는 기본 textLabel의 autoresizingMask를 무시할 수 없습니다.
어떻게 이런 일이 발생하지 않도록 할 수 있습니까?
직접 셀을 만들어야합니다. 커스텀 UILabel을 속성으로하는 UITableViewCell을 서브 클래스 화하고 autoresizingMask를 UIViewAutoresizingNone
으로 설정하십시오.
//create and set your frame to whatever you want.
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 110, 20)];
//set autoresizing
[label setAutoresizingMask:UIViewAutoresizingNone];
//add to view
[[self contentView] addSubview:label];
//set property to acces later
[self myLabel:label];
//release (if you aren't using ARC)
[myLabel release];
당신이보기를 생성하는 인터페이스 빌더 사용하는 경우
[[cell myLabel] setText:@"MAX: 72.92 MPH Will fit!"];
에 나중에 테스트하기 위해 일부 샘플 텍스트를 추가/세포는 자동 크기 마스크 화살표의이 회색 되어 있는지 확인합니다.
좋아, 그래서 didTransitionToState의 프레임을 설정? –
그는 이전 프레임을 저장한다는 것을 의미하고, 상태 == UITableViewCellStateShowingEditControlMask로 전환 할 때 프레임을 설정하려고합니다. 이 방법이 효과가 없다면 다른 아이디어가 있지만이 방법이 효과적 일 수 있습니다. (작동하는 경우) –
아니요, 작동하지 않는 것 같습니다. 그것은 단지 사물을 낯선 사람에게도 애니메이션으로 만들었습니다. –