如何免费做网站详细点说,wex5 wordpress,沈阳建设工程交易网官网,小视频的网站怎么做的UIPickerView
UIPickerView是 iOS 开发中常用的用户界面组件之一#xff0c;用于在垂直方向上显示一个滚动的列表#xff0c;用户可以通过滚动选择其中的一项。
UIPickerView的协议方法
UIPickerView和UItableView差不多#xff0c;UIPickerView也要设置代理和数据源。UI…UIPickerView
UIPickerView是 iOS 开发中常用的用户界面组件之一用于在垂直方向上显示一个滚动的列表用户可以通过滚动选择其中的一项。
UIPickerView的协议方法
UIPickerView和UItableView差不多UIPickerView也要设置代理和数据源。UIPickerView的数据源和代理方法中
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;// 设置UIPickerView的列数
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;// 设置UIPickerView的行数上面这两个方法是必须要实现的其中前者负责设置UIPickerView的列数后者负责设置行数。 其他协议方法
// 设置PickerView第row行的选项标题
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
// 设置第component列第row行显示的视图
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view;
// 当选中第component列第row行的时候就调用该方法
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;
// 设置第component列的宽度
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component;
// 设置第component列的行高
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component;// 获取第component列第row行的视图前提是该列必须是通过视图显示
- (UIView *)viewForRow:(NSInteger)row forComponent:(NSInteger)component;
// 刷新所有列的数据
- (void)reloadAllComponents;
// 刷新第component列的数据
- (void)reloadComponent:(NSInteger)component;
// 在PickerView里显示选中第component列第row的数据
- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated;
// 获取第component列选中的行号
- (NSInteger)selectedRowInComponent:(NSInteger)component;注意 PickerView的高度iOS9之前不能改,默认216,即使修改了也还是216;在iOS9上设置高度为0PickerView会不显示PickerView里面每行的高度可以改系统自带的控件,数据源和代理属性不需要IBOutlet,也能拖线。自己定义的属性,想要拖线,必须写IBOutlet。 一个demo ViewController.h #import UIKit/UIKit.hinterface ViewController : UIViewControllerUIPickerViewDelegate, UIPickerViewDataSourceproperty (nonatomic, strong) UIPickerView *pickerView;
property (nonatomic, copy) NSArray *myArray;
property (nonatomic, copy) NSArray *chushiArr;
property (nonatomic, copy) NSArray *juLiArr;
property (nonatomic, copy) NSArray *caiPinArr;end
ViewController.m #import ViewController.hinterface ViewController () UIPickerViewDelegate, UIPickerViewDataSourceendimplementation ViewController- (void)viewDidLoad {[super viewDidLoad];self.pickerView [[UIPickerView alloc] init];self.pickerView.delegate self;self.pickerView.dataSource self;self.pickerView.frame CGRectMake(0, 200, self.view.bounds.size.width, 500);self.chushiArr [销量最高, 评分最高, 价格最低, 价格最高];self.juLiArr [距离最近, 距离最远];self.caiPinArr [种类最多, 销量最高, 价格最低, 价格最高];self.myArray self.chushiArr;[self.view addSubview:self.pickerView];
}- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {return 2;
}- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {if (component 0) {return 3;}return [self.myArray count];
}- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {NSArray *xuanZe [厨师, 距离, 菜品];if (component 0) {return xuanZe[row];}return self.myArray[row];
}- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {if (component 0) {if (row 0) {self.myArray self.chushiArr;} else if (row 1) {self.myArray self.juLiArr;} else if (row 2) {self.myArray self.caiPinArr;}[self.pickerView reloadComponent:1];}
}end
运行结果