2017-08-13 6 views
1

.countでnewItemを追加しようとすると何も表示されません。私がそれを使うと "car"が置き換えられ、pickerviewでは表示されません。また、newItemが表示されるまで数回上下にスクロールする必要があります。素早くUIPickerviewの2要素配列に新しい要素を追加する方法

var picker1 = String() 
var picker2 = String() 

var pickerViewArray = [["Items", "car"], ["Action", "Turn", "Hit", "Pull", "Scrape"]] 

func numberOfComponents(in pickerView: UIPickerView) -> Int { 

    return pickerViewArray.count 
} 

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
    return pickerViewArray[component].count 
} 

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    return pickerViewArray[component][row] 
} 

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 

    picker1 = pickerViewArray[0] [pickerView.selectedRow(inComponent: 0)] + "" 
    picker2 = pickerViewArray[1] [pickerView.selectedRow(inComponent: 1)] + "" 
} 

func addItemsToArray() { 
    stringWall = "Wall"   
    addItemAtIndex = pickerViewArray[0].count 
    pickerViewArray[0].insert(newItem, at: addItemAtIndex) 
    allRoomArray[arraySelector][wallButton] = stringWall 

    pickingRooms() 
    print(newItem) 
} 
+0

で、XCode9のベータ3、iOSの8.0のターゲットでそれをテストしました。通常は、カスタマイズされた 'UITableViewCell'を使って' UITableView'を作成し、動的リストを実現します。 'UIPickerView'はあらかじめ定義されており、あまり動的なビューではありません。 – antonio081014

+0

お返事ありがとうございます。あなたが与えた最高のアドバイスは、それが私が欲しいものをすることを意図していなかったということでした。 – Dmar

答えて

1

私はpplがこのようにしたいとは思いません。通常、動的リストを実現するためにUITableViewCellをカスタマイズしてUITableViewを作成します。 UIPickerViewはあらかじめ定義されており、それほどダイナミックなビューではありません。あなたのコードのための

ている間は、あなたが本当にあなたのUIPickerViewがひどく動的に必要がある場合、私はあなたのケースのために、あなたのデータソース、pickerViewArrayを変更した後

self.pickerView.setNeedsLayout()を追加しますと言うだろう。

は、私は皆さんがこの方法でやりたいとは思わないスウィフト3.

関連する問題