7

私はiPhoneアプリケーションを開発しています。どこにあるのか、画像のようにしたいですUIPickerViewUIPickerViewこのように見た目を変えることはできますか?!これをするように私を導いてください!XIBなしで作成しています。

UIPickerViewまたは、肌を透明にする方法はありますか?

UIPickerView画像のサンプル

前もって感謝します!!:-)

4

4 に答える 4

9

これが正しい方法かどうかはわかりませんが、UIPickerView背景画像を設定することはできます...私は一度それを行いました。

これを参照してください:-

//Make a view to set as background of UIPickerView
UIView * viewForPickerView = [[UIView alloc]initWithFrame:CGRectMake(0.0, 0.0, 320.0, 216.0)];
[viewForPickerView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"pickerViewBackground.png"]]];

[[[pickerView subviews]objectAtIndex:2] addSubview: viewForPickerView];

//UIPickerView has 8 subviews like, background, rows, container etc.
// hide unnecessary subview

[(UIView*)[[pickerView subviews] objectAtIndex:3] setHidden:YES];
[(UIView*)[[pickerView subviews] objectAtIndex:5] setHidden:YES];
[(UIView*)[[pickerView subviews] objectAtIndex:6] setHidden:YES];
[(UIView*)[[pickerView subviews] objectAtIndex:7] setHidden:YES];
[(UIView*)[[pickerView subviews] objectAtIndex:8] setHidden:YES];

UILabelそして今、あなたのにちょうどを追加し、として使用しUIPickerViewます。あなたはそれをあなた自身の方法で管理することができます。selectionIndicatorlabelselectionIndicator

ありがとうございました!

于 2012-07-12T12:06:31.163 に答える
7

UIPickerViewは、1つ以上のUITableViewと背景ビューおよびセレクタービューを備えたUIViewにすぎません。

ビューを非表示にしてUIPickerビューに追加すると、将来、Appleが別の方法で実装することを決定したときに、コードが破損する可能性があります。

UITableView(s)と独自のカスタム背景およびセレクタービューを使用してコントロールを実装することをお勧めします。

UITableViewにUIPickerViewの動作を実装するためのヒント:

  • ContentInsetを使用して、上/下にスクロールしたときに最初/最後の行が中央に表示されることを確認します。

  • UITableViewSourceでtableView:didSelectRowAtIndexPath:を実装し、UITableViewでscrollToRowAtIndexPathを呼び出して、選択した行を中央に表示します。

  • UITableViewSourceで、scrollViewDidEndDeceleratingとscrollViewDidEndDraggingを実装します(willDecelerateはfalseです)。中央に最も近い行を検出し、その行を選択済みに設定し、UITableViewのselectRowAtIndexPath(または行がすでに選択されている場合はscrollToRowAtIndexPath)を使用してその行を中央にスクロールします。

  • selectRowAtIndexPathおよびscrollToRowAtIndexPathで、atScrollPositionをTOPに設定します。行が中央に表示されているため、これは少し混乱しますが、ContentInsetは上部をビューの中央にプッシュしました。

  • UITableViewの中央に最も近い行は、visibleCellsとcontentOffsetのフレームで検出できます。行のNSIndexPathは、同じインデックスをindexPathsForVisibleRowsに適用することで見つけることができます。

于 2013-02-13T15:23:25.917 に答える
1

残念ながら、UIPickerViewは高度にカスタマイズできないため、プライベートヘッダーを使用して外観を変更するか(推奨されません)、UIPickerViewの動作をシミュレートするがカスタマイズできるサードパーティのライブラリを使用することになります。

于 2015-10-13T13:20:46.733 に答える
0

これらを見てください。正確にあなたが望むものではないかもしれませんが、あまりにも役立つかもしれません:)

于 2012-07-12T11:36:54.907 に答える