私はiPhoneアプリケーションを開発しています。どこにあるのか、画像のようにしたいですUIPickerView
。UIPickerView
このように見た目を変えることはできますか?!これをするように私を導いてください!XIBなしで作成しています。
UIPickerView
または、肌を透明にする方法はありますか?
前もって感謝します!!:-)
私はiPhoneアプリケーションを開発しています。どこにあるのか、画像のようにしたいですUIPickerView
。UIPickerView
このように見た目を変えることはできますか?!これをするように私を導いてください!XIBなしで作成しています。
UIPickerView
または、肌を透明にする方法はありますか?
前もって感謝します!!:-)
これが正しい方法かどうかはわかりませんが、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
ます。あなたはそれをあなた自身の方法で管理することができます。selectionIndicator
label
selectionIndicator
ありがとうございました!
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に適用することで見つけることができます。
残念ながら、UIPickerViewは高度にカスタマイズできないため、プライベートヘッダーを使用して外観を変更するか(推奨されません)、UIPickerViewの動作をシミュレートするがカスタマイズできるサードパーティのライブラリを使用することになります。
これらを見てください。正確にあなたが望むものではないかもしれませんが、あまりにも役立つかもしれません:)