2012-01-30 2 views
0

그룹화 된 TableView가 있고 행의 오른쪽에있는 ">"왼쪽에 UISwitch를 배치했습니다. 지금은 명시 적 CGRect (계산 된 값 없음)를 사용했습니다.iPhone, iPad 및 Retina 용 UITableView에 UISwitch 배치하기

iPhone 4.2에서는 올바르게 배치되었지만 물론 iPad 4.2에서는 올바르게 배치되었습니다.

장치/화면 해상도에 관계없이 동일한 상대 배치를 산출하는 특정 위치 지정 방법이 있습니까? 또는 화면 너비, 표 셀 너비 등을 사용하고 직접 계산합니까?

+0

u는 각 구성 요소에 공식 : ipadVersion.width = iphoneVersion.width * 768/480을 사용할 수 있습니다. 이것은 세로 모드에서만 너비를 찾는 간단한 경우입니다. 물론 동일한 모델을 사용하여 u, x, y 및 높이를 알아낼 수 있습니다. 사실 그 결과는 iPhone 버전의 확대 버전입니다. 나는 다른 옵션이 있다고 생각하지 않는다. –

답변

0

익숙한 내용은 UIViewautoresizingMaskUIViewautoresizesSubviews입니다. 너에게 많은 고통을 덜어 준다.

(A UITableViewCell 서브 클래스 등) 사용자 정의 뷰에 대한
0

당신은 당신의 사용자 정의보기 위치 할 layoutSubviews를 사용할 수 있습니다

- (void) layoutSubviews { 
    [super layoutSubviews]; 

    // layout relative to contentView frame 
    switchView.frame = CGRectMake(
     CGRectGetWidth(self.contentView.frame) - CGRectGetWidth(switchView.frame) - someMargin, 
     4.0f/y, // or something else related to the contentView 
     CGRectGetWidth(switchView.frame), 
     CGRectGetHeight(switchView.frame) 
    ); 
} 

당신은 파단의 재배치를 자동화하기 위해 마스크를 자동 크기도 사용할 수 있습니다. 이것은 당신의 경우 (컨테이너 뷰의 오른쪽에 위치)에서 작동 할 것이지만, 형제 뷰에 상대적으로 위치 시키려면 덜 유용합니다.