私は自分のViewControllerのViewDidLoadメソッドでモデルを設定するカスタムUIPickerViewを持っています。UIPickerViewで選択した項目の外観を設定できないのはなぜですか?
私はそうのように、私のPickerModel用)getViewメソッド(のオーバーライドに表示される各列の項目の外観を設定することができるよ:
public override UIView GetView(UIPickerView pickerView, nint row, nint component, UIView view)
{
var selectedItem = pickerView.SelectedRowInComponent(0);
UILabel lbl = new UILabel(new CGRect(0, 0, 130f, 40f));
lbl.TextColor = UIColor.Black;
lbl.Font = UIFont.SystemFontOfSize(12f);
lbl.TextAlignment = UITextAlignment.Center;
lbl.Text = _values[(int)row];
if (row == selectedItem)
{
lbl.BackgroundColor = MyColours.GetBluish;
}
return lbl;
}
しかし、現在の外観を設定する場合は、そのステートメント選択されたアイテムは、ピッカー内の最初と最後のアイテムに対してのみ起動します。どうしてこれなの?
注意するカップルの事 マイデリゲートとデータソースは、私のViewControllerのモデル変数を設定した後、私のモデルに設定されています。デリゲートとデータソースがどのように動作するはずですか? 他のガイドでは、UIPickerViewサブクラスのViewForRow(XamarinのViewFor)をオーバーライドすることを推奨しています。 。。しかし、このオーバーライドは、私はピッカー:(と対話するとき
オーバーライドSelected
代わり
このアプローチの問題は、私はまた、ピッカー – Chucky
その呼び出しに VARビュー= picker.ViewFor(行、成分)を放出するとき、それは私はそれをスクロールするようUIPickerViewを更新それだけ更新されませんである。戻りますヌル。 – Chucky