UIPickerView的使用

UIPickerView,最近看了朋友写了工程,自己也整理了下,封装了一个还算实用的demo,和小伙伴们一起分享下。


首先,UIPickerView我认为他是相当自由的,并且很随意,能够满足我们需要选择器的各种情况,因为不管是单独一列的,还是多列的操作,UIPickerView都能胜任,而且胜任的很好,所以大多情况下我会选用他,当然如果是选择时间UIDatePicker会胜任的更为简洁。


其次,UIPickerView给我们提供了很多代理也是相对方便的,习性和我们常用的UITAble类似,比如这次demo中使用到的

#pragma mark - UIPickerViewDataSource
/**
 *  设置列数(必须要实现的代理方法)
 */
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return _SWArr.count;
}

/**
 *  每列多少行(必须要实现的代理方法)
 *  component:第几列
 */
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return [_SWArr[component]count];
}

#pragma mark - UIPickerViewDelegate
/**
 *  获取到数据源中的数据,展示到pickerView上
 *  component:第几列
 *  row:第几行
 */
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return _SWArr[component][row];
}

/**
 *  当每次停止滚动,走这个代理。
 *  component:第几列
 *  row:第几行
 */
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    [self HavePickerText];
}


另外这之中还有一个很重要的可选代理,可以改变选择器中选择的文字字号、字体、颜色等内容(如图1:)

/**
 *  返回的是每个选项的view
 *  如果需要改变选择文字的字体、字号、颜色等可以选用此代理
 *  component:第几列
 *  row:第几行
 */
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(nullable UIView *)view{
    
    UILabel *lab = [[UILabel alloc] init];
    lab.backgroundColor = [UIColor redColor];
    lab.textColor = [UIColor yellowColor];
    lab.text = _SWArr[component][row];
    return lab;
}


图1:


最后,给大家看下多行和单行的效果图如下:

单行:



多行:



多多行(哈哈):



下方按钮为Demo地址:

UIPickerViewDemo--司小文(提取码:8624)



感谢观看,学以致用更感谢。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值