2012-07-31 2 views
2

UITableViewCell에 레이블 하위 뷰를 추가하고 싶습니다. 프레임 원점과 크기를 특정 값으로 쉽게 설정할 수 있지만 현재/기본 셀 레이블의 높이와 위치는 어떻게 사용할 수 있습니까?UITableView의 UILabel 설정 크기

UILabel *labPerHour; 

    cell.textLabel.text  = @"Rate"; 

    labPerHour = [[UILabel alloc] init]; 

    //labPerHour.frame = CGRectMake(280, cell.textLabel.frame.origin.y, 80, cell.textLabel.frame.size.height); 
    labPerHour.frame = CGRectMake(260, 7, 30, 30); 
    labPerHour.text = @"$/hr"; 


    [cell addSubview:labPerHour]; 

주석 처리 된 줄이 작동하고 싶습니다. 아니면 비슷한 것입니다.

아무도 도와 줄 수 있습니까? 이 코드는 물론 내 cellForRowAtIndexPath 메소드의 일부입니다.

+0

ios5 스토리 보드 기능을 사용하여 프로토 타입 셀을 만들었습니까? –

+0

아니요, 저는 여전히 Xcode 4를 사용하고 있습니다. 고마워요. – SparkyNZ

답변

1

잘 모르겠습니다. 그것이 효과가 있을지 모른다. 나는 이것을 전에 시험하지 않았다!! 당신이 uitable보기의 기본 레이블의 프레임을 얻으려고 노력하는 경우

CGRect theFrame = cell.textLabel.frame; 
theFrame.origin.x = 280; 
theFrame.size.width = 80; 
labPerHour.frame = theFrame; 
+0

글쎄, cell.textLabel의 크기를 위에서 인용 한 특정 크기로 변경할 수도 있습니다. 내가 쓴 것은 기본 cell.textLabel 크기입니다. iOS가 처음에 할당 한 크기입니다. – SparkyNZ

+0

당신이 얻은 결과는 무엇입니까 ?? 그것은 당신이 당신의 코드에서 시도했던 것과 유사합니다 !! labPerHour.frame = CGRectMake (280, cell.textLabel.frame.origin.y, 80, cell.textLabel.frame.size.height); 아니야 ?? – Nina

1

, 당신은 당신이 제공 할 필요가

+0

주위를 잘 돌아 다니면 더 많은 upvotes와 올바른 솔루션이 필요합니다! – Daniel

1

가 상대 좌표이

CGRect myframe; 
myframe= cell.textlabel.frame; 

이제 필요에 따라이를 사용하려고 할 수 있습니다 superview의 좌표계. 이러한 좌표는 이해가 필요하기 때문에 레이블은 셀 프레임 안쪽이 아닌 셀 프레임 내부에 배치됩니다.

모든보기 및 창은 자체 로컬 좌표계를 정의하기 때문에, 당신은 인식 시스템이 어떤 주어진 시간에 적용되는 조정해야합니다. 뷰를 그리거나 형상을 변경할 때마다 좌표계를 기준으로 상대 좌표를 지정합니다. 그리기의 경우 은 뷰의 자체 좌표계를 기준으로 좌표를 지정합니다. 지오메트리가 변경된 경우 수퍼 뷰의 좌표계 인 에 상대적인 좌표를 지정합니다. UIWindow 및 UIView 클래스 에는 모두 하나의 좌표계에서 다른 좌표계로 변환하는 데 도움이되는 메서드가 있습니다.

"도형 및 좌표계보기"섹션은 View Programming Guide for iOS입니다.

1

처음에는 셀 레이블 프레임을 설정해야합니다.

cell.textLabel.frame = CGRectMake(0, 0, 40, 10); 
+0

하지만 확실히 프레임이 있습니까? 내 셀 및 텍스트 레이블에는 이미 기본 크기가 있습니다.이 기본 크기를 사용하여 추가 서브 그래프 레이블이 셀의 기본 레이블과 동일한 크기가되도록하고 싶습니다. Mac을 가지고 있다면 cell.textLabel.frame의 내용을 인쇄 할 수 있지만 Mac으로 돌아갈 때까지 기다려야합니다. – SparkyNZ

+0

나중에 프레임이 있습니다 ... 프레임을 얻으려고했습니다. 귀하의 요구 사항에 따르면,하지만 테이블을 스크롤 한 후 셀 textlabel 프레임 크기를 얻고 있었다 ... 시작시, 테이블로드 ..나는 셀 텍스트 라벨 높이 = 0을 얻고 있었고, 처음 스크롤을 한 후에 실제 텍스트 라벨 크기를 얻었습니다 ...; – Rajneesh071

+0

그래서 먼저 textLabel 크기를 얻기 위해 표를 스크롤해야하거나 처음에 textLabel 프레임 크기를 제공해야합니다. – Rajneesh071

관련 문제