2017-02-01 5 views
1

私は約40レコードのテーブルを持っています。私はいつも画面の中央にあるセルを特定の位置で選択したいと思っています。私はテーブルからscroolを行うたびに、選択された行を現在中心にある行に変更する必要があります。 ピッカーと同じですが、行には複数のイメージとラベルがあるため、ピッカーを作成することはできません。表2のセル自動選択はswiftを使用します。

似たようなことはできますか?

+0

UITableViewの代わりにUICollectionViewを使用する必要があります。 collectionViewを使用すると、セルをより自由に表示できます。 –

答えて

0

はい、可能ですが、悪いユーザーインターフェイスのように聞こえます。

UITableViewは、UIScrollviewのサブクラスです。スクロールビューの代理人として自分自身を設定することができ、scrollViewDidScroll(_:)scrollViewDidEndDecelerating(_:)のような代理コールに応答して、選択を変更します。

しかし、ピッカービューを使用した方が、ユーザーエクスペリエンスが向上すると思います。ピッカービューを設定して各インデックスのビューを使用できるので、複数のイメージビューとラベルをサブビューとして含むカスタムビューを提供できます。

+0

ピッカーを使用すると、セクション内のコンポーネントを分離できますか? – breno

+0

ピッカービューは複数のコンポーネントをサポートしています。各コンポーネントは別々にスクロールします。それはあなたが欲しいものですか? –

+0

あなたがコンポーネントに分割すると、各コンポーネントは独立して選択可能になります。これは必要なもののようには聞こえません。 – Russell

2

このは、UIPickerViewで可能なです。これは、再作成しようとしているようなサウンドです。

UIPickerViewのビューを置き換えるだけで済みます。通常は必要ではない2つの方法があります。高さを指定する必要があり、行に使用するビューを定義する必要があります

func pickerView(pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat 
{ 
    return self.myRowHeight 
} 

func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!) -> UIView 
{ 
    var myView = UIView(frame: CGRectMake(0, 0, pickerView.bounds.width, self.myRowHeight)) 
    // define & add whatever controls you need 
    myView.addSubview(myControl1) 
    myView.addSubview(myControl2) 

    return myView 
} 
関連する問題