本篇文章為大家展示了如何在iOS中封裝UIPickerView,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
公司主營業(yè)務(wù):網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出江海免費(fèi)做網(wǎng)站回饋大家。
所需屬性
/** pickerView*/ @property (nonatomic, strong) UIPickerView pickerView; /* pickerView背景*/ @property (nonatomic, strong) UIView pickerBackGroundView; /* 背景*/ @property (nonatomic, strong) UIView backGroundView; /* 確認(rèn)按鈕*/ @property (nonatomic, strong) UIButton sureButton; /* 取消按鈕*/ @property (nonatomic, strong) UIButton cancelButton; /* 單列pickerView*/ @property (nonatomic, strong) NSMutableArray slDataArray; /* 雙列pickerView*/ @property (nonatomic, strong) NSMutableArray *mulDataArray;
如果只需要一列的話,只需要傳入一個數(shù)據(jù)數(shù)組:slDataArray,如果需要兩行,則兩個數(shù)組都需要賦值。
實(shí)現(xiàn)UIPickerView代理方法
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ if (self.mulDataArray.count == 0) { return 1; }else { return 2; } } -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ if (component == 0) { return self.slDataArray.count; }else { return self.mulDataArray.count; } } -(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ if (component == 0) { return self.slDataArray[row]; }else { return self.mulDataArray[row]; } }
這里根據(jù)兩個數(shù)組來初始化pickerView的內(nèi)容,即判斷第二個數(shù)組(mulDataArray)是否有數(shù)據(jù),有數(shù)據(jù)的話代表加載兩列的pickerView,否則加載一列。
功能實(shí)現(xiàn)
-(void)pickerViewSelectRow:(NSInteger)row { self.selectRow = row; [self.pickerView selectRow:row inComponent:0 animated:NO]; } -(void)pickerViewSelectRow:(NSInteger)row lastRow:(NSInteger)lastRow{ [self.pickerView selectRow:row inComponent:0 animated:NO]; [self.pickerView selectRow:lastRow inComponent:1 animated:NO]; }
第一個方法是只有一列的pickerView初始化是讓其選中哪行,第二個則是兩列的選擇方法。
-(void)showOrHidePickerView:(BOOL)isShow{ if (isShow) { if (self.isPickerShow == NO) { [self addSubview:self.backGroundView]; [self addSubview:self.pickerBackGroundView]; [UIView animateWithDuration:0.3 animations:^{ self.backGroundView.alpha = 0.5; self.pickerBackGroundView.frame = CGRectMake(0, SCREEN_HEIGHT -220, SCREEN_WIDTH, 220); } completion:^(BOOL finished) { self.isPickerShow = YES; }]; } }else { if (self.isPickerShow) { [UIView animateWithDuration:0.3 animations:^{ self.backGroundView.alpha = 0.0; self.pickerBackGroundView.frame = CGRectMake(0, SCREEN_HEIGHT, SCREEN_WIDTH, 220); } completion:^(BOOL finished) { [self.backGroundView removeFromSuperview]; [self.pickerBackGroundView removeFromSuperview]; self.isPickerShow = NO; }]; } } }
這個方法是顯示或者隱藏pickerView,通過動畫的方式,背景慢慢變黑或者透明,pickerView從下往上出現(xiàn)或者從上往下消失。
-(void)pickerViewReloadData{ [self.pickerView reloadAllComponents]; }
刷新pickerView數(shù)據(jù),加載另一個pickerView時,調(diào)用該方法刷新。
上述內(nèi)容就是如何在iOS中封裝UIPickerView,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。