2010-11-26 2 views
0

전에는 전혀 문제가되지 않은 것을 발견했습니다. iPad 용 프로젝트를 만들었는데, 가로로 서로 옆에 여러 개의 UIPickerView을 배치했습니다. 여기서는 프레임을 초기화하는 프레임을 사용합니다. 즉, 다른 요소를 양쪽에 배치해도 아무런 문제가 없습니다.UIPickerView는 iPhone의 모든 수평 공간을 차지하지만 iPad는 차지하지 않습니다.

이제는 iPhone 프로젝트에서이 작업을 수행하려고합니다. 여기서는 UIPickerView이 유일한 요소라는 것을 주장합니다. "주변"그래픽을 사용하여 화면 크기를 수평으로 채우기 위해 크기를 조절합니다.

다른 접근 방식을 시도했는데 UIPickerView을 다른보기에 배치 한 다음 슈퍼보기의 크기를 조정하면 크기가 조정되지 않고 클리핑이 발생합니다. 또 다른 한가지는 UIPicker이 화면 중앙에 위치해야한다는 것입니다. 이것은 기본적으로 UIPickerView이 화면에 추가되면 단일 구성 요소의 너비가 70 픽셀 밖에되지 않더라도 화면의 320 픽셀은 모두 소모된다는 것을 의미합니다.

화면 오른쪽에 UIPicker, 왼쪽에 버튼이 있습니다.

나는 여기서 명백한 것을 간과하고 있는가?

UIView *container = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 250.0f, 165.0f)]; 

UIPickerView *picker = [[UIPickerView alloc] initWithFrame:container.frame]; 
[picker setDelegate:self]; 
[picker setDataSource:self]; 
[container addSubview:picker]; 

내가 설정 한 프레임 존중되지 않은 : 누군가가 이것보다 더 복잡

아무것도 :) 사전에 감사 손을 빌려 수 바랍니다. 그것은 모든 수평 공간을 차지합니다.

답변

1

동일한 결과를 사용하여 코드를 시도했습니다.

그러나 피커가 만들어지고 컨테이너에 추가 된 후 프레임을 설정할 수 있으며 새 크기가 적용됩니다.

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIPickerView* pv = [[[UIPickerView alloc] initWithFrame: CGRectMake(160, 100, 100, 216) ] autorelease]; 
    pv.delegate = self; 
    pv.dataSource = self; 
    [self.view addSubview: pv]; 

    pv.frame = CGRectMake(10, 10, 100, 216); 
} 
+0

안녕하세요 톰, 당신은, 내가 처음 UIPicker을 (UIPickerView * 선택기 = [[UIPickerView ALLOC 추가하여 같은 결과를 바로 얻을 수 있습니다 다음은 아이폰 시뮬레이터, SDK 4.2을 사용하여 나를 위해 작동 내 테스트 케이스,의 ] initWithFrame : CGRectZero];) 프레임을 선택하고 피커가 뷰에 추가 된 후 프레임을 설정합니다. 고맙습니다:) – RickiG

관련 문제