3

私はそのように機能するダイナミックを持ってUIPickerViewいます:

  • 1 つのコンポーネントのみから始める
  • 行を選択すると、新しいコンポーネントが追加されます

精度のために、コンポーネントでは列を意味します。

最後に追加したコンポーネントのみをアクティブにしたい。他のものは完全に無効にする必要があり、スクロールしたり行を選択したりすることさえできません。

コンポーネントを動的に追加する方法は既に知っていますが、コンポーネントを無効にする方法がわかりません。

それを行う方法はありますか?

4

2 に答える 2

3

コンポーネントを完全に自分で実装せずに無効にする方法はわかりませんが、一度に 1 つのコンポーネントのみを表示し、「戻る」ボタンでアクセサリ ビューを追加することができます。場所を選択すると、コンポーネントに州が表示されます。ユーザーが州を選択すると、そのコンポーネントをその州の都市名に置き換え、必要に応じて戻るための「戻る」ボタンを追加します。これは、あなたがやりたいことに対して私が知っている最もクリーンなソリューションです。

コンポーネントを絶対に「無効にする」必要がある場合は、UIPickerView をサブクラス化し、touchesBegan:withEvent および同様のメソッドをオーバーライドして、他のコンポーネントへのタッチを基本的に無視するしかありません。「無効にする」には、無効なコンポーネントの上にアルファ < 1.0 の灰色のレイヤーを配置できます。これが適切に実装されていない場合、これは醜くなり、予期せぬ望ましくない結果をもたらす可能性があることを警告する必要があります。幸運を。

于 2013-01-10T19:35:00.640 に答える
1

2 つの UIView を作成しました。1 つはピッカーを保持するためのもので、もう 1 つはユーザー入力を有効にしてタッチをキャプチャするためのサブビューです。これをコンポーネントの上に配置すると、必要に応じて userInputEnabled を切り替えることができます。

于 2014-06-14T15:29:29.120 に答える