UIPickerView的使用(三)

//UIPickerViewDataSource中定义的方法,该方法的返回值决定该控件包含的列数
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerView
{
    return 2; // 返回2表明该控件只包含2列
}

//UIPickerViewDataSource中定义的方法,该方法的返回值决定该控件指定列包含多少个列表项
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    // 由于该控件只包含一列,因此无须理会列序号参数component
    // 该方法返回teams.count,表明teams包含多少个元素,该控件就包含多少行

    if (component == 0) {
        return _areas.count;
    }
    else

        return [[_teams objectForKey:_selectedAreas]count];

}

// UIPickerViewDelegate中定义的方法,该方法返回的NSString将作为UIPickerView
// 中指定列和列表项的标题文本
- (NSString *)pickerView:(UIPickerView *)pickerView
             titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    // 由于该控件只包含一列,因此无须理会列序号参数component
    // 该方法根据row参数返回teams中的元素,row参数代表列表项的编号,
    // 因此该方法表示第几个列表项,就使用teams中的第几个元素

    if (component == 0) {
        return [_areas objectAtIndex:row];
    }
    return [[_teams objectForKey:_selectedAreas]objectAtIndex:row];

}

// 当用户选中UIPickerViewDataSource中指定列和列表项时激发该方法
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{

    if (component == 0) {
        _selectedAreas = [_areas objectAtIndex:row];
        [self.pickView reloadComponent:1];

    }

    NSArray *tmp = component == 0 ? _areas: [_teams objectForKey:_selectedAreas];

    NSString *tip = component == 0 ? @"区域":@"球队";
    // 使用一个UIAlertView来显示用户选中的列表项
    UIAlertView* alert = [[UIAlertView alloc]
                          initWithTitle:@"提示"
                          message:[NSString stringWithFormat:@"你选中的%@是:%@"
                                   , tip ,[ tmp objectAtIndex:row]]
                          delegate:nil
                          cancelButtonTitle:@"确定"
                          otherButtonTitles:nil];
    [alert show];
}

// UIPickerViewDelegate中定义的方法,该方法返回的NSString将作为
// UIPickerView中指定列的宽度
-(CGFloat)pickerView:(UIPickerView *)pickerView
   widthForComponent:(NSInteger)component
{
    // 如果是第一列,宽度为90
    if(component == 0) {
        return 90;
    }
    return 210; // 如果是其他列(只有第二列),宽度为210
}

时间: 2024-11-10 13:37:44

UIPickerView的使用(三)的相关文章

UIPickerView的使用(一)

简介:UIPickerView是一个选择器控件,它比UIDatePicker更加通用,它可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活.UIPickerView直接继承了UIView,没有继承UIControl,因此,它不能像UIControl那样绑定事件处理方法,UIPickerView的事件处理由其委托对象完成.使用UIPickerView的对象应该遵守UIPickerViewDataSource,UIPickerViewDelegate.

UiPickerView基本使用方法

注意: 1.使用PickerView之前需要指定数据源对象和代理对象. 2.需要使用到两个协议:UiPickerViewDataSource,数据源协议.   UiPickerViewDelegate代理协议 一.UiPickerView显示数据的步骤 1.懒加载Plist文件 2.设置控制器是当前UiPickerView的数据源对象和代理对象 3.实现数据源方法numberOfComponentsInPickerView返回列的个数 4.实现数据源方法pickerView:numberOfRo

UIPickerView的常见属性

一.UIPickerView 1.UIPickerView的常见属性 // 数据源(用来告诉UIPickerView有多少列多少行) @property(nonatomic,assign) id<UIPickerViewDataSource> dataSource; // 代理(用来告诉UIPickerView每1列的每1行显示什么内容,监听UIPickerView的选择) @property(nonatomic,assign) id<UIPickerViewDelegate>  

使用 UIPickerView 制作的日历

@implementation CalendarByDicViewController - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor colorWithRed:0.93 green:0.93 blue:0.93 alpha:1]; UILabel *lab = [[UILabel alloc] initWithFrame:CGRectMake(110, 50, 100, 33)];

UIPickerView/UIApplication

一.UIPickerView 1.UIPickerView的常见属性 // 数据源(用来告诉UIPickerView有多少列多少行) @property(nonatomic,assign) id<UIPickerViewDataSource> dataSource; // 代理(用来告诉UIPickerView每1列的每1行显示什么内容,监听UIPickerView的选择) @property(nonatomic,assign) id<UIPickerViewDelegate>  

iOS开发 点菜系统 使用UIPickerView

利用UIPickerView实现一个简单的点菜界面,如下图所示.源码地址:https://github.com/xiaoLong1010/iOSAppDemo.git UIPickerView有两个协议UIPickerViewDataSource,UIPickerViewDelegate,它们为UIPickeView提供数据和代理.UIPickeView的三个component分别代表fruit,main,drink,选中某一行,菜名在下面显示.最上面的随机按钮,则实现随机点菜功能. 1.vie

iOS:UIPickerView选择器的使用

通过UIPickerView选择器做的一个类似于密码锁的日期时间表 源码如下: 1 #import <UIKit/UIKit.h> 2 3 @interface ViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate> 4 @property (strong,nonatomic) NSArray *weeks;//显示第一列的数据 5 @property (strong,nonato

UIPickerView常用属性 -- 小总结

UIPickerView常用属性 -- 小总结 一.UIPickerView 1.UIPickerView的常见属性 // 数据源(用来告诉UIPickerView有多少列多少行) @property(nonatomic,assign) id<UIPickerViewDataSource> dataSource; // 代理(用来告诉UIPickerView每1列的每1行显示什么内容,监听UIPickerView的选择) @property(nonatomic,assign) id<UI

UIPickerView 简单小结

一.UIPickerView 1.UIPickerView的常见属性 // 数据源(用来告诉UIPickerView有多少列多少行) @property(nonatomic,assign) id<UIPickerViewDataSource> dataSource; // 代理(用来告诉UIPickerView每1列的每1行显示什么内容,监听UIPickerView的选择) @property(nonatomic,assign) id<UIPickerViewDelegate>