我很困惑,我需要实现一个多类型选择选择器,所以为此我正在这样做:
caratFromPicker = [[UIPickerView alloc] init]; caratTable = [[UITableView alloc]initWithFrame:caratFromPicker.frame style:UITableViewStylePlain]; caratTable.delegate = self; caratTable.dataSource = self; caratTable.bounces = YES; UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(done)]; UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0,self.view.frame.size.height-caratFromPicker.frame.size.height-50,self.view.frame.size.width,50)]; [toolBar setBarStyle:UIBarStyleBlackOpaque]; NSArray *toolbaritems = [NSArray arrayWithObjects:doneButton,nil]; [toolBar setItems:toolbaritems]; price1.inputView = caratFromPicker; price1.inputAccessoryView = toolBar; [caratFromPicker setDataSource: self]; [caratFromPicker setDelegate: self]; caratFromPicker.showsSelectionIndicator = YES;//loadFromPicker [caratFromPicker addSubview:caratTable];
并将UITableView委托实现为:
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return [caratFromArray count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static Nsstring *CellIdentifier = @"Cell"; //UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } tableView.separatorStyle = UITableViewCellSeparatorStyleNone; cell.textLabel.text = [caratFromArray objectAtIndex:indexPath.row]; return cell; }
但我的问题是我无法滚动tableview来查看下一个值.
解决方法
您可以尝试使用UIPicker委托方法:
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)theView{ return YourTableView; }
将tableView设置为行的视图.