简单的选择器

简单的选择器

#import "RootViewController.h"
#define kScreenSize [UIScreen mainScreen].bounds.size
@interface RootViewController ()<UIPickerViewDataSource,UIPickerViewDelegate>
{
    NSArray *_OrderMsg;
}
@property (nonatomic)NSInteger cancelcode;
@property (nonatomic,copy)NSString *cancelcause;
@property (nonatomic,strong)UITextField *pickerViewTextField;
@end

@implementation RootViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    _OrderMsg=@[@"不支持货到付款",@"修改订单",@"重复订购",@"其他"];;
    self.cancelcode=1;
    self.cancelcause=_OrderMsg[0];
    
    UIButton *selectbutton=[UIButton buttonWithType:UIButtonTypeCustom];
    selectbutton.frame=CGRectMake(70, 100, 100, 40);
    selectbutton.backgroundColor=[UIColor greenColor];
    [selectbutton setTitle:@"选择器" forState:UIControlStateNormal];
    [selectbutton setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
    
        [selectbutton addTarget:self action:@selector(selectbutton:) forControlEvents:UIControlEventTouchUpInside];
    
    [self.view addSubview:selectbutton];

}
-(void)selectbutton:(UIButton *)button{
    //选择器
    self.pickerViewTextField = [[UITextField alloc] initWithFrame:CGRectZero];
    [self.view addSubview:self.pickerViewTextField];
    
    UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
    pickerView.showsSelectionIndicator = YES;
    pickerView.dataSource = self;
    pickerView.delegate = self;
    
    // set change the inputView (default is keyboard) to UIPickerView
    self.pickerViewTextField.inputView = pickerView;
    
    // add a toolbar with Cancel & Done button
    UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, kScreenSize.width, 44)];
    toolBar.barStyle = UIBarStyleBlackOpaque;
    
    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"确定" style:UIBarButtonItemStyleDone target:self action:@selector(doneTouched:)];
    
    UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle:@"放弃" style:UIBarButtonItemStylePlain target:self action:@selector(cancelTouched:)];
    
    // the middle button is to make the Done button align to right
    [toolBar setItems:[NSArray arrayWithObjects:cancelButton, [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], doneButton, nil]];
    self.pickerViewTextField.inputAccessoryView = toolBar;
    [self.pickerViewTextField becomeFirstResponder];
}
//添加 bar buttons 方法
-(void)cancelTouched:(UIBarButtonItem *)sender
{
    // hide the picker view
    [self.pickerViewTextField resignFirstResponder];
}

- (void)doneTouched:(UIBarButtonItem *)sender
{
    // hide the picker view
    [self.pickerViewTextField resignFirstResponder];
    NSLog(@"%@",self.cancelcause);
}

//添加代理 UIPickerView
#pragma mark - UIPickerViewDataSource
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return [_OrderMsg count];
}

#pragma mark - UIPickerViewDelegate
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    NSString *item = [_OrderMsg objectAtIndex:row];
    
    return item;
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    self.cancelcause = [_OrderMsg objectAtIndex:row];
    if ([self.cancelcause isEqualToString:_OrderMsg[0]]) {
        self.cancelcode=1;
    }else if ([self.cancelcause isEqualToString:_OrderMsg[1]]) {
        self.cancelcode=3;
    }else if ([self.cancelcause isEqualToString:_OrderMsg[2]]) {
        self.cancelcode=4;
    }else if ([self.cancelcause isEqualToString:_OrderMsg[3]]) {
        self.cancelcode=6;
    }
    
}
@end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值