iPhone アプリで a の高さを減らして、UIPickerView
1 行と 1 列のみを表示したいと考えています。ピッカー ビューの高さは、行の高さと同じにする必要があります。
Interface Builder を使用して を構築してUIPickerView
いますが、このコントロールのサイズを変更する簡単な方法が見つかりません。
どのように縮小しUIPickerView
ますか?
iPhone アプリで a の高さを減らして、UIPickerView
1 行と 1 列のみを表示したいと考えています。ピッカー ビューの高さは、行の高さと同じにする必要があります。
Interface Builder を使用して を構築してUIPickerView
いますが、このコントロールのサイズを変更する簡単な方法が見つかりません。
どのように縮小しUIPickerView
ますか?
実際には、囲んでいるビューにアフィン変換を適用することで、UIPickerView 全体をわずかに縮小できます。例えば:
CGSize pickerSize = [pickerView sizeThatFits:CGSizeZero];
pickerTransformView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, pickerSize.width, pickerSize.height)];
pickerTransformView.transform = CGAffineTransformMakeScale(0.75f, 0.75f);
[pickerTransformView addSubview:pickerView];
[self.view addSubview:pickerTransformView];
[pickerTransformView release];
ピッカーを含むビュー内に配置し、そのビューにスケーリング変換を適用することにより、ピッカーを元のサイズの 75% にスケーリングします。変換を UIPickerView に直接適用すると、望ましくない描画アーティファクトが発生します。
ただし、探している種類のサイズ変更には、カスタム コントロールを作成するのが最適です。
可能で簡単!
nib ファイルをプレーン テキストとして開き、ピッカー ビューを見つけて測定値を調整します。
<object class="IBUIPickerView" id="783900772">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{85, 68}, {150, 116}}</string>
それで全部です!
私の知る限り、縮めるとめちゃくちゃになってしまいます。
a)これを行うUITableView+UIPickerView
には「行」を使用することをお勧めしますUITableView+UIPickerView
。WindowsのdropDownListのようにtableViewの行を使用できます。この行をタップすると、pickerViewが表示されます(最初は非表示)。
b)tableViewにデータの長いリストがあり、データを選択する必要があるアイテムが1つだけの場合は、次の方法を使用してビューをスクロールする必要があります(pickerViewは上下に移動するため、必ず元の位置を計算してください)。一緒):
-(void)setViewMove:(BOOL)moveUP offset:(CGFloat)offset
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
CGRect rect = self.view.frame;
if(moveUP)
{
rect.origin.y-=offset;
rect.size.height+=offset;
}
else //move down
{
rect.origin.y+=offset;
rect.size.height-=offset;
}
self.view.frame = rect;
[UIView commitAnimations];
}
c)ピッカーに別のビューを追加して、何かを選択したときにこのビューに戻ることもできます。
私の結論は次のとおり
です。tableViewに数行しかない場合は、を使用します。
tableViewに多数の行があり、そのうちの1つだけがピッカーを必要とする場合は、bを使用します。
tableViewに多数の行があり、それらの多くにピッカーが必要な場合は、cを使用します。