自定義的選擇器

image.png
#import <UIKit/UIKit.h>

@interface SelectPickerView : UIView


@property (weak, nonatomic) IBOutlet UIView *view;

@property (weak, nonatomic) IBOutlet UILabel *label_title;

/** 外界數(shù)據(jù)源數(shù)組 */
@property (nonatomic,strong)NSArray * pickerSourceAy; // 要展示的地區(qū)

typedef void (^PickSuccessBlock)(NSInteger arrIndex);

/** 成功時回調(diào) */
@property (nonatomic,strong)PickSuccessBlock pickSuccessBlock;

+ (instancetype)regionView;

/

#import "SelectPickerView.h"

@interface SelectPickerView ()<UIPickerViewDataSource,UIPickerViewDelegate>

@property (weak, nonatomic) IBOutlet UIPickerView *pickerView;


/** 選中的行索引 */
@property (nonatomic,assign)NSInteger selectedIndex;

@end

@implementation SelectPickerView


+ (instancetype)regionView {

     return [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil] firstObject];
 }


- (IBAction)but_Select:(id)sender {

      self.pickSuccessBlock(self.selectedIndex);

      [self removeFromSuperview];
 }


- (IBAction)but_Cancel:(id)sender {

  [self removeFromSuperview];
}


  #pragma Mark -- UIPickerViewDataSource
  // pickerView 列數(shù)
  - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
  return 1;
  }

  // pickerView 每列個數(shù)
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {

    return [self.pickerSourceAy count];
  }

  #pragma Mark -- UIPickerViewDelegate
  // 每列寬度
  - (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component {

  //    if (component == 1) {
  //        return 40;
  //    }
      return 270;
  }

    // 返回選中的行
 - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
  self.selectedIndex = row;
}

//返回當(dāng)前行的內(nèi)容,此處是將數(shù)組中數(shù)值添加到滾動的那個顯示欄上
-(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return [self.pickerSourceAy objectAtIndex:row];
}

接下來調(diào)用

SelectPickerView * selectPicker = [SelectPickerView regionView];

selectPicker.frame = self.view.bounds;
selectPicker.backgroundColor = [UIColor clearColor];
selectPicker.view.layer.masksToBounds = YES;
selectPicker.view.layer.cornerRadius = 5;
 [self.view addSubview:selectPicker];

NSArray * AyPicker = @[@"1",@"2",.....];
selectPicker.pickerSourceAy = AyPicker;
    selectPicker.pickSuccessBlock = ^(NSInteger Index) {
        
        NSString* str = AyPicker[Index];
 }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容