如何监听pickerview 在滚动

如题所述

pickerview 滚动方法
// SensorAddDeleteViewController.m
// Abviewer_iPhone
//
// Created by Ken.zhao on 13-11-20.
// Copyright (c) 2013年 sven. All rights reserved.
//

#import "SensorAddDeleteViewController.h"
#import "ABServices.h"
#import "FormatWeekListViewController.h"

@interface SensorAddDeleteViewController ()

@end

@implementation SensorAddDeleteViewController
@synthesize m_pickerSensor;
@synthesize m_mutArrSensorList;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}

- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor colorWithPatternImage:K_contentsOfFile(@"Background", @"png")];

NSMutableArray *mutArrSensorList = [[NSMutableArray alloc] initWithArray:[FormatWeekListViewController resultAllSersonName]];
self.m_mutArrSensorList = mutArrSensorList;
[mutArrSensorList release];

UIPickerView *pickerSensor = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 100, 320, 220)];
self.m_pickerSensor = pickerSensor;
[pickerSensor release];
m_pickerSensor.delegate = self;
m_pickerSensor.dataSource = self;
m_pickerSensor.showsSelectionIndicator = YES;
[self.view addSubview:m_pickerSensor];

  //这里是初始化,自动转一圈,避免第一次是数组第一个值造成留白
[m_pickerSensor selectRow:[m_mutArrSensorList count] inComponent:0 animated:YES];
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

-(void)dealloc
{
[m_pickerSensor release];
[m_mutArrSensorList release];
[super dealloc];
}
#pragma mark -
#pragma mark pickview delegate
//组件数
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}

//每个组件的行数
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return [m_mutArrSensorList count]*50;
}

//初始化每个组件每一行数据
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return [m_mutArrSensorList objectAtIndex:(row%[m_mutArrSensorList 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 = [m_mutArrSensorList count]*50;
base10 = (max/2)-(max/2)%[m_mutArrSensorList count];
[pickerView selectRow:[pickerView selectedRowInComponent:component]%[m_mutArrSensorList count]+base10 inComponent:component animated:false];
}
}

//替换text居中
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(12.0f, 0.0f, [pickerView rowSizeForComponent:component].width-12, [pickerView rowSizeForComponent:component].height)];

label.text = [m_mutArrSensorList objectAtIndex:(row%[m_mutArrSensorList count])];//[m_mutArrSensorList objectAtIndex:row-1];
label.textAlignment = UITextAlignmentCenter;
return [label autorelease];
}
@end
温馨提示:内容为网友见解,仅供参考
无其他回答

如何监听pickerview 在滚动
void matchTemplate( InputArray image, InputArray templ,OutputArray result, int method );

记一次 UIPickerView 无法滚动的问题。
后来又是 谷歌、又是百度、又是 stackoverflow 的。 别人的提问都是在 UITableView 或者是 UIScrollView 中添加了 UIPickerView 导致无法滚动( 肯定是手势冲突了 )。 没有我的这种情况。后来实在没办法,就在 dispatch_after 里重新 reload 了一下数据。 于是就是可以滚动...

如何让UIPickerView加载后就自动选择到某一行值
这个pickerView是在pickerViewController这个UIViewController中。//获取选中的列中的所在的行 NSInteger row=[_pickerViewController.pickerView selectedRowInComponent:0];//然后是获取这个行中的值,就是数组中的值 NSString *value=[_pickerViewController.array objectAtIndex:row];你的采纳是我前进...

如何禁止uiscrollview垂直方向滚动
禁止UIScrollView垂直方向滚动,只允许水平方向滚动 scrollview.contentSize = CGSizeMake(你要的长度, 0);禁止UIScrollView水平方向滚动,只允许垂直方向滚动 scrollview.contentSize = CGSizeMake(0, 你要的宽度);在UIScrollView的SubView里面弹出一个pickerView的时候,想禁止UIScrollView滚动,如何实现?s...

如何自定义 UIPickerView 的行
} [pickerCell setLabelTexts:@[...]];return pickerCell;} 我们定义了一个PickerViewCell视图,里面根据我们的传入的column参数来等分放置column个UILabel,并通过setLabelTexts来设置每个UILabel的文本。当然,我们也可以在PickerViewCell去定义UILabel的外观显示。就是这么简单。不过,还有个需要注意的就...

ios怎么手势返回的时候消失pickerview
是iOS7新特性带来的问题,我自己也没找到解决方法,只好把autolayout这一属性的对勾取消,然后世界就恢复正常了。祝你愉快,满意请采纳哦

如何自定义pickerView的高度和宽度
7. 产品优点: 使得UIPickerView像它应该 没有在你的代码转换UIViewController在工作viewWillLayoutSubviews重新缩放\/定位UIPickerView作品在iPad上没有UIPopover超总是收到有效高度 工作与iOS 5 缺点: 需要你继承UIPickerView需要的pickerView viewForRow撤消转型为子视图 UIAnimations可能无法正常工作 ...

UIPickerView中间选中那个cell分割线如何去除
两种方法,第一种是在 Interface Builder 里面操作: 在 Interface Builder 中打开 storyboard 选中你要操作的 tableView 在右边的 Attributes Inspector 中,将 Separator 由 Default 改为 None 第二种是通过代码修改,在 viewDidLoad 中添加

如何改变UIPickerView的高度
7. 产品优点: 使得UIPickerView像它应该 没有在你的代码转换UIViewController在工作viewWillLayoutSubviews重新缩放\/定位UIPickerView作品在iPad上没有UIPopover超总是收到有效高度 工作与iOS 5 缺点: 需要你继承UIPickerView需要的pickerView viewForRow撤消转型为子视图 UIAnimations可能无法正常工作 ...

请教PickerView有默认选中某行的方法吗
你好。 若懒得查文档. 就直接把UIKit.framework中相应得.h文件打开看, 再若懒得打开.h文件, 就在编辑器里头打关键字UIPickerView, 然后按住command键, 对着UIPickerView双击... 如果我的回答没能帮助您,请继续追问。

相似回答