2010-11-26 4 views
0

以前は一度も問題にならなかったことに気付きました。 iPad向けのプロジェクトを行ったところで、横に横に並べて複数のUIPickerViewを配置しました。ここでは、それらが初期化するフレームCGRectを尊重しています。つまり、他の要素を両側に配置することは問題ありません。UIPickerViewはiPhoneのすべての水平スペースを占めますが、iPadでは使用できません。

今私はiPhoneのプロジェクトでこれを行うにしようとしていますし、ここでUIPickerViewは唯一の要素であることを主張しています。 「周囲」のグラフィックスを使用して、画面を水平に塗りつぶすようにサイズを調整します。

私はリサイズ、ないクリッピングにつながることを、そのスーパービューサイジング異なるビュー内UIPickerViewを置き、さまざまなアプローチを試してみました。もう1つのことは、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

私は同じ結果であなたのコードを試しました。

ピッカーを作成し、あなたのコンテナに追加され、新しいサイズが尊重された後ただし、フレームを設定することができます。ここではiPhoneシミュレータでSDK 4.2を使用して、私の作品私のテストケースは、です:

- (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を追加することによって、同じ結果を得ます] initWithFrame:CGRectZero];)を選択し、ピッカーがビューに追加された後にフレームを設定します。ありがとうございました:) – RickiG

関連する問題