UIKit框架-高级控件:7.UIPickerView的自定义
2015-03-03 12:32
435 查看
在前面, 我们使用了UIPickerView试验了几次, 与其他UI控件结合在一起使用的也有, 今天我们就把UIPickerView剥的更深入, 让我们更加好的掌握UIPickerVIew, 下面让我们来看看
1.在.h文件里遵守UIPickerView的代理方法和数据源方法
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate>
@end
2.在.m文件里声明全局变量
@interface ViewController ()
{
UIPickerView *_pickerView;
NSArray *_arrayOne;
NSArray *_arrayTwo;
}
@end
PS:这两个数组分别是要用来存放UIPickerView的左右两边选择器的内容.
3.实例化UIPickerView
#pragma mark - 添加UIPikerView
- (void)myPikerView
{
// 1.实例化UIPickerView
_pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 250, self.view.frame.size.width, 250)];
[_pickerView setBackgroundColor:[UIColor grayColor]];
// 2.设置UIPickerView的代理方法和数据源方法.
[_pickerView setDelegate:self];
[_pickerView setDataSource:self];
// 3.设置是否显示内容
[_pickerView setShowsSelectionIndicator:YES];
// 4.把UIPickerView添加到self.view
[self.view addSubview:_pickerView];
}
4.添加UIPickerView的数据源方法
// 返回UIPickerView有多少列
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 2;
}
// 返回UIPickerView有多少行
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if (component == 0) {
return _arrayOne.count;
} else {
return _arrayTwo.count;
}
}
5.添加UIPickerView的代理方法
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (component == 0) {
return _arrayOne[row];
} else {
return _arrayTwo[row];
}
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
NSLog(@"第一列选中的行数是 %ld,第二列选中的行数是 %ld", [pickerView selectedRowInComponent:0], [pickerView selectedRowInComponent:1]);
NSInteger leftCol = [pickerView selectedRowInComponent:0];
NSInteger rightCol = [pickerView selectedRowInComponent:1];
NSLog(@"%@ ~~~ %@", _arrayOne[leftCol], _arrayTwo[rightCol]);
}
6.定义数组的内容
- (void)myArray
{
_arrayOne = @[@"辰东", @"唐家三少"];
_arrayTwo = @[@"完美世界", @"天火大道", @"神墓"];
}
最终效果:
附件: UIPickerView的代理方法拓展
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
{
return 100;
}
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UIView *views = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
[views setBackgroundColor:[UIColor redColor]];
return views;
}
效果:
好了, 这次我们就讲到这里, 下次我们继续~~
1.在.h文件里遵守UIPickerView的代理方法和数据源方法
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate>
@end
2.在.m文件里声明全局变量
@interface ViewController ()
{
UIPickerView *_pickerView;
NSArray *_arrayOne;
NSArray *_arrayTwo;
}
@end
PS:这两个数组分别是要用来存放UIPickerView的左右两边选择器的内容.
3.实例化UIPickerView
#pragma mark - 添加UIPikerView
- (void)myPikerView
{
// 1.实例化UIPickerView
_pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 250, self.view.frame.size.width, 250)];
[_pickerView setBackgroundColor:[UIColor grayColor]];
// 2.设置UIPickerView的代理方法和数据源方法.
[_pickerView setDelegate:self];
[_pickerView setDataSource:self];
// 3.设置是否显示内容
[_pickerView setShowsSelectionIndicator:YES];
// 4.把UIPickerView添加到self.view
[self.view addSubview:_pickerView];
}
4.添加UIPickerView的数据源方法
// 返回UIPickerView有多少列
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 2;
}
// 返回UIPickerView有多少行
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if (component == 0) {
return _arrayOne.count;
} else {
return _arrayTwo.count;
}
}
5.添加UIPickerView的代理方法
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (component == 0) {
return _arrayOne[row];
} else {
return _arrayTwo[row];
}
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
NSLog(@"第一列选中的行数是 %ld,第二列选中的行数是 %ld", [pickerView selectedRowInComponent:0], [pickerView selectedRowInComponent:1]);
NSInteger leftCol = [pickerView selectedRowInComponent:0];
NSInteger rightCol = [pickerView selectedRowInComponent:1];
NSLog(@"%@ ~~~ %@", _arrayOne[leftCol], _arrayTwo[rightCol]);
}
6.定义数组的内容
- (void)myArray
{
_arrayOne = @[@"辰东", @"唐家三少"];
_arrayTwo = @[@"完美世界", @"天火大道", @"神墓"];
}
最终效果:
附件: UIPickerView的代理方法拓展
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
{
return 100;
}
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UIView *views = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
[views setBackgroundColor:[UIColor redColor]];
return views;
}
效果:
好了, 这次我们就讲到这里, 下次我们继续~~
相关文章推荐
- UIKit框架-高级控件:8.UIPickerView, UILabel, UIImageView结合使用
- UIKit框架-高级控件:6.UIPickerView与UIImageView结合使用
- UIKit框架-高级控件:4.UIDatePickerView的基本认识
- UIKit框架-高级控件:9.UIPickerView简易城市地区选择器
- UIKit框架-高级控件:2.UIScrollView的单图分页设置
- UIKit框架-高级视图-UITableView-表格控件
- UIKit框架-高级控件:3.UIScrollView的多图分页设置
- UIKit框架-高级控件Swift版本: 6.UIAlertView方法/属性详解
- UIKit框架-高级控件:10.UITableView的简单简介
- UIKit框架-高级控件Swift版本: 4.UICollectionView方法/属性详解
- UIKit框架-高级控件Swift版本: 2.UITableView方法/属性详解
- UIKit框架-高级控件Swift版本: 1.UIScrollView方法/属性详解
- UIKit框架-高级控件:1.UIScrollView的基本认识
- UIKit框架-高级视图-UICollectionView-表格控件
- UIKit框架-高级控件:5.UIDatePickerView日期选择
- UIPickerView控件中自定义显示的字体大小及样式
- iOS开发UI高级—10使用picker View控件完成一个简单的选餐应用
- UIKit框架-高级控件Swift版本: 9.UINavigationController方法/属性详解
- iOS基础-UIKit框架-高级视图-UIPickerView-实例3:国家选择(图片)
- UIKit框架-高级控件Swift版本: 5.UITextView方法/属性详解