UIPickerView _ ordering system for IOS (20) UI of cat learning, iosuipickerview
CAT/CAT sharing, must be excellent
Material address: http://blog.csdn.net/u013357243/article/details/45057267
For Original Articles, please reprint them. Reprinted Please note: Yan Nai-yu's blog
Http://blog.csdn.net/u013357243? Viewmode = contents
First look ##
UIPickerView:
It is used to display data of many rows and many columns (component), mostly for e-commerce ordering, city selection, and so on.
UIPickerView usage:
It is similar to tableView. Usage:
1: Set proxy and Data Source
@interface NYViewController ()<UIPickerViewDataSource, UIPickerViewDelegate>
Data source: UIPickerViewDataSource,
1. How many columns are returned?
2. How many rows are returned?
# Pragma mark-UIPickerViewDataSource // return the total number of columns in the pickerView-(NSInteger) numberOfComponentsInPickerView :( UIPickerView *) pickerView {// return 3; return self. foods. count;} // return the number of rows in the component column of the pickerView-(NSInteger) pickerView :( UIPickerView *) pickerView numberOfRowsInComponent :( NSInteger) component {// return 4; // 1. obtain the array NSArray * subFoods = self. foods [component]; // 2. returns the number of rows in the corresponding column. return subFoods. count ;}
Proxy UIPickerViewDelegate
Returns the row content of the component column.
# Pragma mark-UIPickerViewDelegate // return what is displayed in the row of the component column-(NSString *) pickerView :( UIPickerView *) pickerView titleForRow :( NSInteger) row forComponent :( NSInteger) component {// 1. obtain the array NSArray * subFoods = self. foods [component]; // 2. obtain the line title NSString * name = subFoods [row]; return name ;}
How to monitor which row to select
DidSelectRow
When we select a row in a column, we set the corresponding data.
// When a row of pickerView is selected, it is called. // The selected column number and row number are passed as parameters. // It is called only when a row is selected by fingers -( void) pickerView :( UIPickerView *) pickerView didSelectRow :( NSInteger) row inComponent :( NSInteger) component {// NSLog (@ "component = % d, row = % d", component, row ); // 1. obtain the data NSString * name = self. foods [component] [row]; // NSLog (@ "name = % @", name); // 2. determine which column is selected, and set the corresponding data if (0 = component) {// Fruit self according to the column number. fruitLabel. text = name;} else if (1 = component) {// main course self. stapleLabel. text = name;} else {// beverage self. drinkLabel. text = name ;}}
Implement random events
How to Make pickerView scroll to which line
SelectRow inComponent enables pickerView to actively scroll to a row in a column
-(IBAction) randomFood :( UIButton *) sender {// Let the pickerView actively select a Row. // Let the pickerView select the Row of the inComponent column. // [self. pickerView selectRow: 1 inComponent: 0 animated: YES];/* [self. pickerView selectRow: arc4random () % 12 inComponent: 0 animated: YES]; [self. pickerView selectRow: arc4random () % 15 inComponent: 1 animated: YES]; [self. pickerView selectRow: arc4random () % 10 inComponent: 2 animated: YES]; * // [self. foods objectAtIndex: 0]; = self. foods [0]; // [self. foods [0] count]; // generates a random value based on the number of elements in each column [self. pickerView selectRow: arc4random () % [self. foods [0] count] inComponent: 0 animated: YES]; [self. pickerView selectRow: arc4random () % [self. foods [1] count] inComponent: 1 animated: YES]; [self. pickerView selectRow: arc4random () % [self. foods [2] count] inComponent: 2 animated: YES]; */for (int component = 0; component <self. foods. count; component ++) {// obtain the total data of the corresponding column int total = [self. foods [component] count]; // generate a random number based on the total number of each column (the current Random Number) int randomNumber = arc4random () % total; // obtain the currently selected row (the row to be moved after the last random operation) int oldRow = [self. pickerView selectedRowInComponent: 0]; // NSLog (@ "oldRow = % d", oldRow); // compare whether the last row number is the same as the currently generated random number, if the while (oldRow = randomNumber) {randomNumber = arc4random () % total;} // Let the pickerview scroll to a row [self. pickerView selectRow: randomNumber inComponent: component animated: YES]; // select a line using the code [self pickerView: nil didSelectRow: randomNumber inComponent: component];}
Ps: new iOS communication learning group: 304570962 can be added to cat qq: 1764541256 or znycat. Let's study hard together.
Yan Nai-yu's blog
Http://blog.csdn.net/u013357243? Viewmode = contents