2012-08-15 2 views
0

나는 스 와이프하여 삭제 단추를 가져올 때 텍스트에서 줄 바꿈을 사용하기 때문에 textLabel을 뒤틀어 버립니다.UITableViewCell 삭제 단추가 텍스트에서 줄 바꿈을 사용하는 경우 textLabel을 뒤집습니다.

전 : 삭제 모드에서

enter image description here

:

enter image description here

난 그냥 삭제 버튼이 오히려 애니메이션을하는 것보다, 내 텍스트 위로 가고 싶어하기 때문 실망 나사를 조이는 방식으로

  • 왜 이런 일이 발생합니까? 내 문자열에서 줄 바꿈을 사용하기 때문에?
  • 어떻게 이런 일이 발생하지 않도록 할 수 있습니까?

답변

0

UITableViewCell의 textLabel.Frame 속성에 액세스 할 수 있어야합니다. UITableViewCell을 서브 클래스 화하여 [UITableViewCell didTransitionToState:(UITableViewCellStateMask)state]

+0

좋아, 그래서 didTransitionToState의 프레임을 설정? –

+0

그는 이전 프레임을 저장한다는 것을 의미하고, 상태 == UITableViewCellStateShowingEditControlMask로 전환 할 때 프레임을 설정하려고합니다. 이 방법이 효과가 없다면 다른 아이디어가 있지만이 방법이 효과적 일 수 있습니다. (작동하는 경우) –

+0

아니요, 작동하지 않는 것 같습니다. 그것은 단지 사물을 낯선 사람에게도 애니메이션으로 만들었습니다. –

1

왜 이런 일이 발생합니까? 내 문자열에서 줄 바꿈을 사용하기 때문에?

셀의 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!"]; 

에 나중에 테스트하기 위해 일부 샘플 텍스트를 추가/세포는 자동 크기 마스크 화살표의이 회색 되어 있는지 확인합니다.

interfacebuilder autoresizingMask

관련 문제