UIPickerView 内容循环滚动

#import "ViewController.h"


@interface ViewController () <</span>UIPickerViewDelegate,UIPickerViewDataSource>

{

    UIPickerView *myPickView;

    NSMutableArray *dataList;

}


@end


@implementation ViewController



- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    dataList = [NSMutableArray arrayWithObjects:@"1",@"2",@"3"nil];

    

    myPickView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 100, 320,220)];

    myPickView.delegate = self;

    myPickView.dataSource = self;

    //在当前选择上显示一个透明窗口

    myPickView.showsSelectionIndicator = YES;

    [self.view addSubview:myPickView];

    //初始化,自动转一圈,避免第一次是数组第一个值造成留白

    [myPickView selectRow:[dataList count] inComponent:0 animated:YES];

    

}


#pragma mark pickview delegate

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

{

    return 1;

}


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

{

    return [dataList count]*50;

}


- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component

{

    return [dataList objectAtIndex:(row%[dataList count])];

}


//选中picker cell,save ArrayIndex

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

{

    NSUInteger max = 0;

    NSUInteger base10 = 0;

    if(component == 0)

    {

        max = [dataList count]*50;

        base10 = (max/2)-(max/2)%[dataList count];

        [pickerView selectRow:[pickerView selectedRowInComponent:component]%[dataList count]+base10 inComponent:component animated:false];

    }

}


//替换text居中

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

    

    UILabel *label = [[UILabel allocinitWithFrame:CGRectMake(12.0f0.0f, [pickerView rowSizeForComponent:component].width-12, [pickerView rowSizeForComponent:component].height)];

    label.backgroundColor = [UIColor orangeColor];

    label.text = [dataList objectAtIndex:(row%[dataList count])];

    label.textAlignment = NSTextAlignmentCenter;

    return label;

}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值