zoukankan      html  css  js  c++  java
  • uipickerview用法

    //获取国家区号视图

    @interface PickerView : UIView

    @property(nonatomic,retain)RegisterViewController * registerVC;

    @property (nonatomic, strong)void (^resultBlock)(NSMutableArray *resultArr);

    #pragma  mark================获取国家区号视图

    @interface PickerView ()<UIPickerViewDelegate,UIPickerViewDataSource>

    {

        UIView *_pickerBg;

        UIPickerView *_picker;

        UILabel *_timeLable;

        UIButton *_cancelBtn;

        UIButton *_sureBtn;

    }

    @property (nonatomic, retain)NSMutableArray *selectArr;

    @end

    @implementation PickerView

    - (id)init

    {

        self = [super initWithFrame:[UIScreen mainScreen].bounds];

        if (self) {

            self.backgroundColor=[UIColor colorWithRed:0 green:0 blue:0 alpha:0];

            _selectArr = [NSMutableArray arrayWithArray:@[@"中国", @"+86"]];

            [self setupPickerView];

        }

        return self;

    }

    - (void)setupPickerView

    {

        _pickerBg = [[UIView alloc] initWithFrame:CGRectMake(0, screenHeight, screenWidth, 216)];

        [self addSubview:_pickerBg];

        

        _picker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 216)];

        _picker.backgroundColor=[UIColor whiteColor];

        _picker.delegate=self;

        _picker.dataSource=self;

        [_pickerBg addSubview:_picker];

        

        _timeLable = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 43.5)];

        _timeLable.backgroundColor=[UIColor whiteColor];

        _timeLable.text=@"请选择国家区号:";

        _timeLable.textColor=[UIColor darkGrayColor];

        _timeLable.font=[UIFont systemFontOfSize:17.0f];

        [_picker addSubview:_timeLable];

        

        UILabel *bottomLine=[[UILabel alloc] initWithFrame:CGRectMake(0, _timeLable.bottom, screenWidth, 0.5)];

        bottomLine.backgroundColor=[UIColor colorWithWhite:0.8 alpha:1];

        [_picker addSubview:bottomLine];

        

        _sureBtn = [UIButton buttonWithType:UIButtonTypeCustom];

        _sureBtn.frame=CGRectMake(screenWidth/2.0, _picker.height-44, screenWidth/2.0, 44);

        _sureBtn.backgroundColor=[UIColor colorWithWhite:0.95 alpha:1];

        _sureBtn.titleLabel.font=[UIFont systemFontOfSize:16.0f];

        [_sureBtn setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];

        [_sureBtn setTitle:@"确定" forState:UIControlStateNormal];

        [_sureBtn addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];

        [_pickerBg addSubview:_sureBtn];

        

        _cancelBtn = [UIButton buttonWithType:UIButtonTypeCustom];

        _cancelBtn.frame=CGRectMake(0, _picker.height-44, screenWidth/2.0, 44);

        _cancelBtn.backgroundColor=[UIColor colorWithWhite:0.95 alpha:1];

        _cancelBtn.titleLabel.font=[UIFont systemFontOfSize:16.0f];

        [_cancelBtn setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];

        [_cancelBtn setTitle:@"取消" forState:UIControlStateNormal];

        [_cancelBtn addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];

        [_pickerBg addSubview:_cancelBtn];

        

        bottomLine=[[UILabel alloc] initWithFrame:CGRectMake(0, _sureBtn.top-0.5, screenWidth, 0.5)];

        bottomLine.backgroundColor=[UIColor colorWithWhite:0.8 alpha:1];

        [_picker addSubview:bottomLine];

        

        UILabel *vLine=[[UILabel alloc] initWithFrame:CGRectMake(screenWidth/2.0, _picker.height-44, 0.5, 44)];

        vLine.backgroundColor=[UIColor colorWithWhite:0.8 alpha:1];

        [_pickerBg addSubview:vLine];

    }

    - (void)layoutSubviews

    {

        [super layoutSubviews];

        

        [UIView animateWithDuration:0.2 animations:^{

            _pickerBg.top=screenHeight-216;

            self.backgroundColor=[UIColor colorWithRed:0 green:0 blue:0 alpha:0.1];

        }];

    }

    #pragma mark ------- Action

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

    {

        [self hideSelfView];

    }

    - (void)btnAction:(UIButton *)btn

    {

        if (_sureBtn == btn) {

            _resultBlock(_selectArr);

        }

        [self hideSelfView];

    }

    /** 隐藏视图 */

    - (void)hideSelfView

    {

        [UIView animateWithDuration:0.2 animations:^{

            _pickerBg.top=screenHeight;

            self.backgroundColor=[UIColor colorWithRed:0 green:0 blue:0 alpha:0];

        }completion:^(BOOL finished) {

            [self removeFromSuperview];

        }];

    }

    #pragma mark----UIspickerview delegate

    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

    {

        return 1;

    }

    - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {

        if (!self.registerVC.nationarArr) {

            return 0;

        }

        return [self.registerVC.nationarArr count];

    }

    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component

    {

        _selectArr = [NSMutableArray arrayWithArray:self.registerVC.nationarArr[row]];

    }

    -(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component

    {

        return [NSString stringWithFormat:@"%@ %@", self.registerVC.nationarArr[row][0], self.registerVC.nationarArr[row][1]] ;

    }

    #pragma mark----textfield delegate

    - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

    {

        [UIView animateWithDuration:0.5 animations:^{

            if (_picker.top==screenHeight) {

                _picker.frame=CGRectMake(0,screenHeight-216, screenWidth, 216);

                [self  bringSubviewToFront:_picker];

            }

        }];

        return NO;

    }

    @end

    -(void)telNumberClick

    {

        PickerView *data = [[PickerView alloc] init];

        data.registerVC=self;

        //设置_tel区号

        data.resultBlock = ^(NSMutableArray *arr){

            _tel.text=arr[1];

        };

        [[UIApplication sharedApplication].delegate.window addSubview:data];

    }

  • 相关阅读:
    os和sys模块
    time模块
    collections模块
    re模块
    Python初识一
    Python闭包函数
    压栈
    isinstance()和issubclass()
    匿名函数--lambda函数
    机器学习入门文章
  • 原文地址:https://www.cnblogs.com/momosmile/p/5287527.html
Copyright © 2011-2022 走看看