国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[iOS基礎控件-6.10.1]PickerView餐點搭配Demo

2019-11-14 19:44:48
字體:
來源:轉載
供稿:網友
A.需求
1.使用PickerView做出有3列餐點(水果、主菜、飲料)的搭配Demo
2.選擇的餐點實時顯示在“顯示區”
3.提供“隨機”按鈕,隨機選擇菜品搭配
 
B.實現步驟
1.拖入一個PickerView
Image(143)
 
2.用控制器配置dataSource和delegate
 1 // 遵守UipickerViewDataSource,UIPickerViewDelegate 2 @interface ViewController () <UIPickerViewDataSource, UIPickerViewDelegate> 3  4 /** 選擇器 */ 5 @PRoperty (weak, nonatomic) IBOutlet UIPickerView *pickerView; 6  7 @end 8  9 @implementation ViewController10 11 - (void)viewDidLoad {12     [super viewDidLoad];13     // Do any additional setup after loading the view, typically from a nib.14    15     // 設置dataSource16     self.pickerView.dataSource = self;17     // 設置delegage18     self.pickerView.delegate = self;19 }
 
3.實現代理方法
 1 #pragma mark - 代理方法 2 /** 列數 */ 3 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { 4     return 3; 5 } 6  7 /** 對應列的行數 */ 8 - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { 9     return 5;10 }11 12 /** 對應列和行的顯示內容 */13 - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {14     return @"內容";15 }
 
Image(144)
 
4.引入plist文件,讀取數據
Image(145)
 
 1 /** 加載數據,延遲加載 */ 2 - (NSArray *) foodCategories { 3     if (nil == _foodCategories) { 4         _foodCategories = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"foods.plist" ofType:nil]]; 5     } 6      7     return _foodCategories; 8 } 9 10 #pragma mark - dataSource方法11 /** 列數 */12 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {13     return self.foodCategories.count;14 }15 16 /** 對應列的行數 */17 - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {18     NSArray *foods = self.foodCategories[component];19     return foods.count;20 }21 22 23 #pragma mark - delegate方法24 /** 對應列和行的顯示內容 */25 - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {26     NSArray *foods = self.foodCategories[component];27     return foods[row];28 }
 
 
Image(146)
 
5.制作顯示區
Image(147)
 
1 /** 水果 */2 @property (weak, nonatomic) IBOutlet UILabel *fruitLabel;3 /** 主菜 */4 @property (weak, nonatomic) IBOutlet UILabel *mainLabel;5 /** 飲料 */6 @property (weak, nonatomic) IBOutlet UILabel *drinkLabel;
 
6.響應選擇事件
 1 /** 響應選擇餐點事件 */ 2 - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 3     NSArray *foods = self.foodCategories[component]; 4     NSString *food = foods[row]; 5     6     switch (component) { 7         case 0: 8             self.fruitLabel.text = food; 9             break;10         case 1:11             self.mainLabel.text = food;12             break;13         case 2:14             self.drinkLabel.text = food;15             break;16         default:17             break;18     }
 
Image(148)
 
7.制作“隨機”功能
 1 /** 隨機選擇餐點 */ 2 - (IBAction)onRandomClicked { 3     // 循環所有餐點種類 4     for (int i=0; i<self.foodCategories.count; i++) { 5         // 之前選擇的餐點行數 6         NSInteger originalRow = [self.pickerView selectedRowInComponent:i]; 7         8         NSInteger row = originalRow; 9        10         // 此種類內含有的所有餐點11         NSArray *foods = self.foodCategories[i];12         // 如果隨機的餐點跟上一次的相同,繼續隨機13         while (row == originalRow) {14             row = arc4random() % foods.count;15         }16        17         // 通知pickerView改變選擇18         [self.pickerView selectRow:row inComponent:i animated:YES];19        20         // 改變顯示區21         [self pickerView:self.pickerView didSelectRow:row inComponent:i];22     }23 }
 
Image(149)
 
 
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙江县| 措美县| 灌云县| 岳阳市| 株洲市| 铜鼓县| 霍山县| 墨竹工卡县| 札达县| 黎川县| 芦山县| 阿拉尔市| 新疆| 青海省| 全南县| 枝江市| 罗城| 同心县| 孟村| 镇康县| 华容县| 青川县| 湛江市| 沧源| 三明市| 广汉市| 香河县| 易门县| 丰都县| 定兴县| 宿迁市| 濉溪县| 日照市| 桃源县| 济南市| 且末县| 泊头市| 碌曲县| 九龙县| 八宿县| 托克逊县|