一个View中有多个android pickervieww问题

问题:苹果公司现任CEO是谁?2字正确答案:库克
主题 : IOS pickerView 开始选中问题
级别: 新手上路
UID: 380540
可可豆: 163 CB
威望: 156 点
在线时间: 95(时)
发自: Web Page
IOS pickerView 开始选中问题&&&
&我的pickerview 第一列和第二列 是关联的 我用代码[pickeView selectRow:5 inComponent:0 animated:YES];选中第一列的某一行 对应的第二列数据不更新 求帮助。。。
模拟器 是IOS8的 Xcode6
级别: 侠客
可可豆: 661 CB
威望: 669 点
在线时间: 265(时)
发自: Web Page
在下面再加一行代码:
& & & & & & & &&[pickerView reloadComponent:1];
看看有没有效果
级别: 新手上路
UID: 380540
可可豆: 163 CB
威望: 156 点
在线时间: 95(时)
发自: Web Page
这个是没有效果的
用这句代码的话 根据打印结果 可以看出pickerview曾经 调用过代理函数 使第二列数据刷新使第二列数据对应第一列的行5
但是最后又莫名奇妙的 调用代理函数 刷新第二列的数据 数据有对应第一列的行0了 无论如何 第二列的数据 无法对应第一列的行5
级别: 侠客
可可豆: 661 CB
威望: 669 点
在线时间: 265(时)
发自: Web Page
有那几个代码的实现代码吗?感觉是你的逻辑出问题了
级别: 新手上路
UID: 380540
可可豆: 163 CB
威望: 156 点
在线时间: 95(时)
发自: Web Page
有个朋友说 用低版本的模拟器 就不会有bug
我把代码发你邮箱里面吧 就一个单独的界面
提供一下呗
级别: 侠客
可可豆: 661 CB
威望: 669 点
在线时间: 265(时)
发自: Web Page
级别: 新手上路
UID: 497201
可可豆: 19 CB
威望: 5 点
在线时间: 50(时)
发自: Web Page
[pickeView selectRow:5 inComponent:1 animated:YES];&&0改成1
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版阅读人次:3648
pickerview是一个方便选择的一个控件,有个封装好的日期控件DatePicker就是用这个封装的。下面就看这个空间的使用,先做个单个组件的Picker:1.建立项目(这步就不用说了,简单起见就单页面项目吧)2.在xib文件中拖个Picker View控件,如下图在下面放置一个button点击显示选中的值2.建立PickerView的输入口及button的点击action,OC代码@property(strong,nonatomic)IBOutlet UIPickerView *singleP
-(IBAction)buttonP在PickerView的使用中需要NSArray类型的对象保存控件中显示的值,所以也要声明个属性@property(strong,nonatomic)NSArray *pickerD3.这时运行一下 会出现下边的界面,但是一拖拽picker就会报错拖拽的时候报错是因为,pickerview的所有者(当前视图对应的类)没有实现pickeview的几个委托方法,就像TableView的几个tableview方法。4.将tableview的dataSource及delegate两个输出口属性 连接到xib文件的Files Owner上、然后实现几个委托方法 及 初始化及点击button的代码事件 &如下c#代码- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
NSArray *array=[[NSArray alloc] initWithObjects:@&111&,@&333&,@&222&,@&444&,@&555&,@&666& ,nil];//初始化给pickerData赋值
self.pickerData=
- (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}//点击按钮的事件
-(void)buttonPressed
NSInteger row=[self.singlePicker selectedRowInComponent:0];//获取第一个组建的选择行
NSLog(@&%@&,[self.pickerData objectAtIndex:row]);//从pickerData中取出row行的数据 即是点击的数据
//返回组件数
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
}//返回组件的数据条数
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
[self.pickerData count];
}//返回各个行的数据
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
return [self.pickerData objectAtIndex:row];
允许点击按钮如下图这样就能实现一个组件的pickerview的使用了,多个组件与此类似。
我有我在下一篇:
我有我在上一篇:如何让一个页面中存在多个tableview中分别显示不同的资料_百度知道关于&PickerView&数据源的问题
PickerView数据源的绑定在“无形”之中,因为并不是采用一种可视的方法,比如xxxx.dataSource =
myDataSource,而是通过实现协议的方式,对于UIPickerVIew,需要实现如下等若干协议
- (NSInteger) numberOfComponentsInPickerView :(UIPickerView
*)pickerView{
- (NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component{
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow
:(NSInteger)row forComponent :(NSInteger)component{
一个协议可以是控键的初始化,也可以是操作的调用,数据源协议可以理解为静态的属性设置(如numberOfComponentsInPickerView),比如设置PickerView的行数,或者列数,而委托则是对一个动作的做的反应或者是内容初始化(如第二个(NSString&*)pickerView),部分这些函数看上去是return调用,其实应该是用于控键初始化操作。而其他协议,比如:
- (void)pickerView:(UIPickerView *)pickerView
didSelectRow:(NSInteger)row inComponent:(NSInteger)
则是操作调用(也就是委托)!
就这段时间本人感受Cocoa
的一大就是魅力(本人初涉Cocoa)对mvc3个概念的分离,就像上面所说的,model用数据实现,完全和view分离,不象VC++,需要自己在view中添加数据,insertString
之类。。。。
具体,可以多看看类的.h文件,在代码中选择一个类名,然后jump to defination,等待高人有精辟的见解!
供稿者&&harming
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 ios pickerview 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信