我建立了一個tableview,但是我想點擊直接單元格顯示選擇器來選擇。我可以點擊tableview cell show picker嗎?
然後選定的值將顯示在單元格標籤組件中。
但我不得不嘗試labelName.text = picker
。或撥打電話didSelectRowAtIndexPath
。它沒有顯示選擇器。
我的代碼如下
-(UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MotDeteTableViewCell";
cell = (MotDeteTableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil)
{
cell = [[MotDeteTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.motTableTitleLabel.text = [tableDatasAry objectAtIndex:indexPath.row];
if(indexPath.row == 0)
{
}
else if (indexPath.row == 1)
{
myLb = [ [UILabel alloc ] initWithFrame:CGRectMake(_motTableView.frame.size.width -50 , 0.0, 70.0, 40.0) ];
// ------- I expect click the picker value will show in myLb label
myLb.text = @"picker will show value";
[cell addSubview:myLb];
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
switch (indexPath.row) {
case 0:
break;
case 1:
// -------- I had try put settingPickeProperty in here or viewdidload
[self settingPickeProperty];
break;
default:
break;
}
}
#pragma mark - settting picker datas
-(void) settingPickeProperty
{
picker = [[UIPickerView alloc] initWithFrame:CGRectZero];
picker .delegate = self;
picker .dataSource = self;
[ picker setShowsSelectionIndicator:YES];
// -------if i use textfield the picker had correct show. but i want to click cell show the picker, I don't know how to set xxxx = picker;
_pickertf.inputView = picker ;
UIToolbar* mypickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 56)];
mypickerToolbar.barStyle = UIBarStyleDefault;
[mypickerToolbar sizeToFit];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:flexSpace];
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithTitle:@"done" style:UIBarButtonItemStyleBordered target:self action:@selector(pickerDoneClicked)];
[barItems addObject:doneBtn];
[mypickerToolbar setItems:barItems animated:YES];
// ------ if use textfield had correct...
_pickertf.inputAccessoryView = mypickerToolbar;
}
-(void)pickerDoneClicked
{
NSLog(@"Done Clicked");
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component
{
return [titleAry count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return [titleAry objectAtIndex:row];
}
- (void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
}
這是我的代碼爲每一位參考。
如何實現點擊的tableview細胞表現出選擇器,然後在myLb選擇選擇器值說明了什麼?
at didSelect已選擇行索引的方法。所以你可以通過選擇表格視圖的特定單元來放置開放式選取器的代碼。 –
我曾試圖把[self settingPickeProperty];部分在選擇行索引中。但是當我點擊單元格時。它不顯示選擇器。而且我不知道如何設置label = picker?謝謝 。 – dickfala
@NitinGohel他正在選擇第二排。見'開關(indexPath.row)' –