日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UIPickerView基本使用

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UIPickerView基本使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UIPickerView是很常用的一個UI控件,在各種購物平臺選擇地址時候都是必備的,下面我們來說一下具體的使用

首先UIPickerView的創建,與多數控件一樣,分配內存并設置位置尺寸。

重要的的是代理與數據源,設置代理和數據源后服從代理和數據源協議

<UIPickerViewDelegate,UIPickerViewDataSource>

?

其中數據源里面有兩個必須實現的方法

//設置列數 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{return count; }//設置指定列包含的項數 - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{

}

UIPickerView是可以只設置單列的,列被稱為component,此時返回的列數為1即可,單更多時候需要的是多列情況,此時設置返回值為自己所需要的列數即可。

在UIPickerViewDataSource數據源協議中,僅僅提供了UIPickerView包含幾列以及每一列的項數,而每一行展示的選項是通過UIPickerViewDelegate協議中的方法來設置的。

//設置每個選項顯示的內容 - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ } //獲取用戶當前選中的選項 - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{}

?

UIPickerView基本屬性和方法:

設置數據源對象以及代理對象

@property(nullable,nonatomic,weak) id<UIPickerViewDataSource> dataSource; @property(nullable,nonatomic,weak) id<UIPickerViewDelegate> delegate;

?

重新加載列:

- (void)reloadAllComponents; - (void)reloadComponent:(NSInteger)component;

?

獲取當前選中的選項序號:

- (NSInteger)selectedRowInComponent:(NSInteger)component;

?

指定選中的項顯示在中間位置,一般設置第一項放在中間:

- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated;

下面是一個簡單的完整示例:

#import "ViewController.h"@interface ViewController ()<UIPickerViewDelegate,UIPickerViewDataSource> @property(nonatomic,strong)UIPickerView *pickerVIew; @property(nonatomic,strong)NSDictionary *dictionary; @property(nonatomic,strong)NSArray *provinceArray; @property(nonatomic,copy)NSString *selectedProvince; @end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];self.dictionary = @{@"江蘇":@[@"南京",@"徐州",@"鎮江",@"無錫",@"常州"],@"河北":@[@"石家莊",@"保定",@"承德",@"滄州",@"秦皇島"]};//獲取字典中所有的省份并排序保存self.provinceArray = [[self.dictionary allKeys] sortedArrayUsingSelector:@selector(compare:)];self.selectedProvince = self.provinceArray[0];[self.view addSubview:self.pickerVIew];}//懶加載 - (UIPickerView *)pickerVIew{if (_pickerVIew == nil) {self.pickerVIew = [[UIPickerView alloc]initWithFrame:CGRectMake(0, 44, self.view.frame.size.width, 400)];_pickerVIew.layer.masksToBounds = YES;_pickerVIew.layer.borderWidth = 1;_pickerVIew.delegate = self;_pickerVIew.dataSource = self;}return _pickerVIew; }#pragma mark ------- dateSource&&Delegate --------//設置列數 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{return 2; }//設置指定列包含的項數 - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{if (component == 0) {return self.provinceArray.count;}return [self.dictionary[self.selectedProvince] count]; }//設置每個選項顯示的內容 - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{if (component == 0) {return self.provinceArray[row];}return [self.dictionary[self.selectedProvince] objectAtIndex:row]; }//用戶進行選擇 - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{if (component == 0) {self.selectedProvince = self.provinceArray[row];[self.pickerVIew reloadComponent:1];//設置第二列首選的始終是第一個[self.pickerVIew selectRow:0 inComponent:1 animated:YES];} }@end

?

轉載于:https://www.cnblogs.com/li-wei203/p/10803039.html

總結

以上是生活随笔為你收集整理的UIPickerView基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。