2014-03-06 48 views
0

我建立了一個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選擇選擇器值說明了什麼?

+0

at didSelect已選擇行索引的方法。所以你可以通過選擇表格視圖的特定單元來放置開放式選取器的代碼。 –

+0

我曾試圖把[self settingPickeProperty];部分在選擇行索引中。但是當我點擊單元格時。它不顯示選擇器。而且我不知道如何設置label = picker?謝謝 。 – dickfala

+0

@NitinGohel他正在選擇第二排。見'開關(indexPath.row)' –

回答

0

您沒有添加任何地方pickerView

如果你想在當前視圖中添加,只是用

picker = [[UIPickerView alloc] initWithFrame:CGRectZero]; 

picker.delegate = self; 
picker.dataSource = self; 
[picker setShowsSelectionIndicator:YES]; 
[self.view addSubView:picker]; 
+0

如果我設置文本字段。當我點擊文本框時,選擇器會顯示。 (_pickertf.inputView = picker;)但是,如果我將在用戶單擊時在tableview單元格上設置。我不知道如何設置這部分。我試着添加[self.view addSubView:picker];它會顯示錯誤。如下:'UIView'沒有可見的@interface聲明選擇器'addSubView:'謝謝 – dickfala

+0

什麼是您添加選擇器的基類? –

+0

效果是點擊選擇器會顯示。並不總是顯示在視圖上。 – dickfala

0

根據我的理解,你需要證明在選定的表格單元格的標籤選擇器值。

所以下面的步驟可以幫助你,如果細胞是恆定的;例如只有三個電池。

你只是不需要出列的單元格,然後嘗試設置值。