- args.session could 3-5
- then I need to create labels and picker for each label
- So it seems like the "pickerValue" is being overwritten
- I tried to create another array called pickerViewArray and at the end of the loop I am adding the pickerValue to this array. But it's not working. When I run the code and click on the label I get the following error:
message = "undefined is not an object (evaluating 'pickerViewArray[i].animate')";
[ERROR] : Script Error { [WARN] : New layout set while view [object TiUIView] animating: Will relayout after animation. [WARN] : New layout set while view [object TiUIView] animating: Will relayout after animation. [WARN] : New layout set while view [object TiUIView] animating: Will relayout after animation. [WARN] : New layout set while view [object TiUIView] animating: Will relayout after animation. [WARN] : New layout set while view [object TiUIView] animating: Will relayout after animation. [ERROR] : column = 126; [WARN] : New layout set while view [object TiUIView] animating: Will relayout after animation. [WARN] : New layout set while view [object TiUIView] animating: Will relayout after animation. [ERROR] : line = 111; [ERROR] : message = "undefined is not an object (evaluating 'pickerViewArray[i].animate')"; [WARN] : New layout set while view [object TiUIView] animating: Will relayout after animation.
So I guess pickerViewArray doesn't save the pickerView as an object?????
. . . for(var i=1; i<= args.sessions; i++){ //Here is where I create labels and their values var session = Ti.UI.createTableViewRow({height:46, className:"q{i}", title: i+"."}); var value = Ti.UI.createLabel({color:'#3D4460', text:"", font:{fontSize:17, fontWeight:'normal'}, top:11, left:150, height:20, width:180, textAlign:'right'}); session.add(value); array.push(session); tableView.setData(array); // This is where I create picker var picker = Ti.UI.createPicker({top:0, selectionIndicator: true}); var pickerView = Ti.UI.createView({height:248,bottom:-248}); var pickerHours = []; var pickerMinutes = [ Ti.UI.createPickerRow({title:"00"}), Ti.UI.createPickerRow({title:"15"}), Ti.UI.createPickerRow({title:"30"}), Ti.UI.createPickerRow({title:"45"}) ]; // setting the hour for(var j=0; j<24; j++){ pickerHours.push(Ti.UI.createPickerRow({title:"{j}"})); } picker.add(pickerHours); picker.add(pickerMinutes); pickerView.add(picker); picker.addEventListener('change',function(e){ value.text = picker.getSelectedRow(0).title; tableView.setData(array); }); // THIS IS THE PROBLEM pickerViewArray.push(pickerView); win.add(pickerView); } // animations var slideIn = Ti.UI.createAnimation({bottom:-43}); var slideOut = Ti.UI.createAnimation({bottom:-251}); //Accessing the PickerValueArray here tableView.addEventListener('click', function(eventObject){ for(var i=1; i <= pickerViewArray.length; i++){ for(var j=0; j < pickerViewArray.length; j++){ if (eventObject.rowData.className == "q{i}"){ pickerViewArray[i].animate(slideIn); } else { pickerViewArray[i].animate(slideOut); } } } }); win.add(tableView); win.open();