에서 CGRect를 얻기 나는 LogCGRect(cell.textLabel.frame);
을 시도했지만 그건 그냥 내가 셀에 textLabel라는의 CGRect을 찾을 수있는 방법 나에게 (0, 0) 0 x 0
아이폰 OS는 - cell.textLabel.frame
을 준다? 왜 내가 UITableViewCell
을 서브 클래 싱하고 원래의 textLabel에서 크기를 유지하고 30 픽셀의 너비를 빼기를 원하는지 궁금합니다.
에서 CGRect를 얻기 나는 LogCGRect(cell.textLabel.frame);
을 시도했지만 그건 그냥 내가 셀에 textLabel라는의 CGRect을 찾을 수있는 방법 나에게 (0, 0) 0 x 0
아이폰 OS는 - cell.textLabel.frame
을 준다? 왜 내가 UITableViewCell
을 서브 클래 싱하고 원래의 textLabel에서 크기를 유지하고 30 픽셀의 너비를 빼기를 원하는지 궁금합니다.
답변을 찾았습니다. -cellForRowAtIndexPath:
에서 셀의 하위 뷰는 아직 레이아웃되지 않았습니다.
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
LogCGRect(cell.textLabel.frame);
}
UITableViewCell
의 textLabel에는 기본적으로 CGRectZero
프레임이 있습니다. 프레임을 변경하려면 textLabel.text
을 약간의 값으로 설정해야합니다.
내가 그 일을했지만 여전히 나에게 프레임을 제공하지 않습니다 : 대리인이 방법을 사용, LogCGRect (cell.textLabel.frame를)'cell.textLabel.text = @ "foo는"' –
첫째, 그것은'[cell.textLabel setText : @ "foo"]'입니다. 둘째,'LogCGRect'는 무엇입니까? 대신에'NSLog (@ "% @", cell.textLabel);을 사용하십시오. –
첫째, Objective-C 2.0에 도입 된 현대 런타임에 도트 표기법을 사용하는 것이 좋습니다. 둘째,'NSLog'ing'CGRect'를위한 매크로입니다. 그러나 권고 사항을 사용하면 여전히 CGRectZero 프레임이 제공됩니다. –