UIPickerView + UIToolsBar

来源:互联网 发布:嵌入式linux内核编译 编辑:程序博客网 时间:2024/05/18 22:18
- (void)textFieldDidBeginEditing:(UITextField *)textField{//    [self showPickerView];    PickerView *pickerView = [[PickerView alloc] initWithFrame:self.view.bounds data:@[@"9", @"8", @"7", @"6", @"5", @"4", @"3", @"2"] components:1 view:_textField];    [self.view addSubview:pickerView];}



////  PickerView.h//  PickerViewTest////  Created by lance on 14-1-10.//  Copyright (c) 2014年 Lance. All rights reserved.//#import <UIKit/UIKit.h>@interface PickerView : UIView <UIPickerViewDataSource, UIPickerViewDelegate>{    NSArray *_data;    NSInteger _components;    UITextField *_bindView;    UIPickerView *_pickerView;    UIToolbar *_toolbar;}- (id)initWithFrame:(CGRect)frame data:(NSArray *)data components:(NSInteger)components view:(UITextField *)view;@end

////  PickerView.m//  PickerViewTest////  Created by lance on 14-1-10.//  Copyright (c) 2014年 Lance. All rights reserved.//#import "PickerView.h"@interface PickerView ()- (void)cancel:(id)sender;- (void)done:(id)sender;@end@implementation PickerView- (id)initWithFrame:(CGRect)frame data:(NSArray *)data components:(NSInteger)components view:(UITextField *)view{    self = [super initWithFrame:frame];    if (self) {        // Initialization code        _data = [NSArray arrayWithArray:data];        _components = components;        _bindView = view;                [self initView];    }    return self;}- (void)initView{    _toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];    UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];    UIBarButtonItem *cancel = [[UIBarButtonItem alloc] initWithTitle:@"取消" style:UIBarButtonItemStyleDone target:self action:@selector(cancel:)];    UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithTitle:@"确定" style:UIBarButtonItemStyleDone target:self action:@selector(done:)];    [_toolbar setItems:@[cancel, space, done]];        _pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, 320, 260)];    _pickerView.delegate = self;    _pickerView.dataSource = self;    [_pickerView addSubview:_toolbar];    _bindView.inputView = _pickerView;    _bindView.inputAccessoryView = _toolbar;    self.backgroundColor = [UIColor colorWithRed:0.7 green:0.5 blue:0.6 alpha:0.4];}- (void)removeView{    CGRect toolBarFrame = _toolbar.frame;    CGRect pickerViewFrame = _pickerView.frame;    pickerViewFrame.origin.y = toolBarFrame.origin.y = self.frame.size.height;    [UIView animateWithDuration:0.5 animations:^{        self.backgroundColor = [UIColor clearColor];        _toolbar.frame = toolBarFrame;        _pickerView.frame = pickerViewFrame;    } completion:^(BOOL finished) {        [_bindView resignFirstResponder];        [_pickerView removeFromSuperview];        [_toolbar removeFromSuperview];        [self removeFromSuperview];    }];}#pragma mark barButton action- (void)cancel:(id)sender{    [self removeView];}- (void)done:(id)sender{    [self removeView];}#pragma mark UIPickerView DataSource- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{    if (_components == 1) {        return [_data count];    } else {        return [[_data objectAtIndex:component] count];    }}- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{    return _components;}- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{    if (_components == 1) {        return [_data objectAtIndex:row];    } else {        return [[_data objectAtIndex:component] objectAtIndex:row];    }}#pragma mark UIPickerView delegate- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{    }@end


0 0