pikerView入门代码

来源:互联网 发布:广州知途科技有限公司 编辑:程序博客网 时间:2024/06/03 13:21


#import "FZTextField.h"

#import "Flag.h"

#import "FZFlagView.h"


@interface FZTextField()<UIPickerViewDataSource,UIPickerViewDelegate>

@property(nonatomic,strong)NSArray *flags;


@end


@implementation FZTextField

// 加载数据

- (NSArray *)flags

{

    if (_flags ==nil) {

        NSString *path = [[NSBundlemainBundle] pathForResource:@"flags.plist"ofType:nil];

        NSArray *arrayFlags = [NSArrayarrayWithContentsOfFile:path];

        NSMutableArray *arrayM = [NSMutableArrayarray];

        for (NSDictionary *dictin arrayFlags) {

            Flag *flag = [FlagflagWithDict:dict];

            [arrayM addObject:flag];

        }

        _flags = arrayM;

    }

    return _flags;


}


// 当从Xib中加载完描述的文本框,就会调用

- (void)awakeFromNib

{

    [self setUp];

}


- (void)setUp

{

//    创建一个选择器

    UIPickerView *pikerView = [[UIPickerViewalloc] init];

//    设置选择器的代理和数据源

    pikerView.delegate = self;

    pikerView.dataSource = self;

// 设置文本框输入键盘

    self.inputView = pikerView;

//    程序已启动默认选中第0列第0

    [selfpickerView:pikerView didSelectRow:0inComponent:0];

    

}


#pragma mark - UIPickerViewDataSource

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

{

    return 1;

}

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

{

    return self.flags.count;

}


- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component

{

    return 80;

}



#pragma mark - UIPickerViewDelegate

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view

{

// 取出数据

    Flag *flag = self.flags[row];

//    创建FZFlagView

    FZFlagView *flagView = [FZFlagViewflagView];

// 设置FZFlagView的数据

    flagView.flag = flag;

//   设置控件frame

    CGRect frame = flagView.frame;

    frame.size.width = [UIScreenmainScreen].bounds.size.width;

    flagView.frame = frame;

// 返回flagView

    return flagView;

    

}

// 用户选中某一行时调用

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

{

     Flag *flag = self.flags[row];

    self.text = flag.name;

}


@end


0 0
原创粉丝点击