iPhoneアプリでUIPickerView
の高さを小さくしたいので、1行と1列だけを表示します。ピッカービューの高さは、行の高さと等しくなければなりません。iPhoneでUIPickerViewをどのように縮小しますか?
UIPickerView
を構築するためにInterface Builderを使用していますが、このコントロールのサイズを変更する簡単な方法が見つかりません。
UIPickerView
をどのように縮小しますか?
iPhoneアプリでUIPickerView
の高さを小さくしたいので、1行と1列だけを表示します。ピッカービューの高さは、行の高さと等しくなければなりません。iPhoneでUIPickerViewをどのように縮小しますか?
UIPickerView
を構築するためにInterface Builderを使用していますが、このコントロールのサイズを変更する簡単な方法が見つかりません。
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に直接適用すると、望ましくない描画アーチファクトが発生します。
しかし、あなたが探しているリサイズの種類は、カスタムコントロールを作成することによって最も効果的です。
+1スーパービューに変換を適用することは決して考えなかった!私は常に不満足な結果でピッカービューにそれを適用しようとしました。もし私ができるなら、私はこれを10回upvoteしたいと思います。 –
PickerViewを回転させた後にTouchイベントを送信する機能が失われています。思考? – Mark
@mark - ピッカーとその周囲のビューが、そのビューを含む範囲内にあることを確認してください。彼らがスーパービューの外にいる場合、タッチイベントはそれらに到達しません。 –
私が知る限り、あなたがそれを縮めれば、それはうんざりされます。
a)UITableView + UIPickerView
これを行うには、「UITableView + UIPickerViewの1行」を使用することをお勧めします。 WindowsのdropDownListのようなtableViewの行を使用できます。この行をタップすると、pickerView(最初は非表示)が表示されます。
b) テーブルビューに長いデータリストがあり、そのうちの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に数行しかない場合は、aを使用します。
tableViewに多くの行があり、そのうちの1つだけにピッカーが必要な場合は、bを使用します。
tableViewにたくさんの行があり、それらの多くにピッカーが必要な場合は、cを使います。
があり、我々は、Webページで –
、ドロップダウンリストは、もともとWindowsプラットフォーム上の他のツールで作成されたWebページに表示のように、我々は、セレクタドロップダウンを作成することができる方法です。 SafariはdropDownListを見るために独自のコントロールを追加しますが、Appleはxcodeにそれを追加しません。 –
可能ですが簡単です!
<object class="IBUIPickerView" id="783900772">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{85, 68}, {150, 116}}</string>
すべてです:
ちょうどピッカービューを見つけ、対策を調整し、その後、プレーンテキストとしてnibファイルを開きます!
ここに書き込む太字のテキストを追加すると、何も起こりません。 (もともと320、216)、{320、116}に> NSFrameSize - はだから、次の項目を変更しました。そしてこれはうまくいく。 –
Iこれはピッカーのインジケータを含む上位3行が表示されるように、{320、130}に「NSFrameSize」を設定するお勧めします。しかし、サイドエフェクトは、これがピッカーの下部フレームを表示せず、ユーザーがトップ3ライン以外を見ることができないということです。 –
これは私のために何も変わっていません。 – Bryan
Interface BuilderでシンプルなUIViewを作成します。希望の位置とサイズを設定し、制約を追加します。 [クリップサブビュー]チェックボックスをオンにします。次に、&ドロップピッカービューをこのビューの中にサブビューとしてドラッグします。ピッカーのコンストレインを追加して、コンテナ内で水平方向と垂直方向に整列させます。仕事をしなければならない。
:-(...同じまま。 – Nilambar
残念ながら私StackOverflowのアカウントの「評判」を行いますあなたが好きならば、私はあなたに詳細を郵送することができます。私は、画像をアップロードすることはできませ。 – user2248258
UIScrollViewのを試してみて、didScroll中:デリゲートのメソッドは、スナップを行うスクロール速度がしきい値を下回った場合。 – Dimitris