2012-02-13 4 views
0

에서 CGRect를 얻기 나는 LogCGRect(cell.textLabel.frame);을 시도했지만 그건 그냥 내가 셀에 textLabel라는의 CGRect을 찾을 수있는 방법 나에게 (0, 0) 0 x 0아이폰 OS는 - cell.textLabel.frame

을 준다? 왜 내가 UITableViewCell을 서브 클래 싱하고 원래의 textLabel에서 크기를 유지하고 30 픽셀의 너비를 빼기를 원하는지 궁금합니다.

답변

4

답변을 찾았습니다. -cellForRowAtIndexPath:에서 셀의 하위 뷰는 아직 레이아웃되지 않았습니다.

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 

    LogCGRect(cell.textLabel.frame); 
} 
0

UITableViewCell의 textLabel에는 기본적으로 CGRectZero 프레임이 있습니다. 프레임을 변경하려면 textLabel.text을 약간의 값으로 설정해야합니다.

+0

내가 그 일을했지만 여전히 나에게 프레임을 제공하지 않습니다 : 대리인이 방법을 사용, LogCGRect (cell.textLabel.frame를)'cell.textLabel.text = @ "foo는"' –

+0

첫째, 그것은'[cell.textLabel setText : @ "foo"]'입니다. 둘째,'LogCGRect'는 무엇입니까? 대신에'NSLog (@ "% @", cell.textLabel);을 사용하십시오. –

+0

첫째, Objective-C 2.0에 도입 된 현대 런타임에 도트 표기법을 사용하는 것이 좋습니다. 둘째,'NSLog'ing'CGRect'를위한 매크로입니다. 그러나 권고 사항을 사용하면 여전히 CGRectZero 프레임이 제공됩니다. –

관련 문제