2013-06-26 70 views
2

我有一個預填充的UITableViewCell在哪個單元有一個標籤和UITextField。假設我有一個標籤爲「map」的單元格,並且我想在該單元格上添加按鈕,我該怎麼做?
我試過了,但這不起作用。
下面是代碼:如何添加UITableViewCell上的按鈕

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"rateSheetCell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) 
    { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 
    if (indexPath.row == 0) 
    { 
     ((UILabel*)[cell viewWithTag:100]).text = @"Title"; 
     ((UITextField*)[cell viewWithTag:101]).placeholder = @"Title"; 
     ((UITextField*)[cell viewWithTag:101]).text = arrayResourceColumns[indexPath.section][indexPath.row][@"resource_title"]; 
     ((UITextField*)[cell viewWithTag:101]).keyboardType = UIKeyboardTypeDefault; 
    } 
    else 
    { 
     if([arrayResourceColumns[indexPath.section][indexPath.row][@"label"] isEqualToString:@"OT ($)"]){ 

      NSInteger desiredLabel = (NSInteger)(arrayResourceColumns[indexPath.section][indexPath.row][@"label"]); 

      //NSString *desiredLabel = arrayResourceColumns[indexPath.section][indexPath.row][@"label"]; 
      NSLog(@"Label is>>>>--------%ld", (long)desiredLabel); 

      if (indexPath.row == desiredLabel) { 
       UIButton *b = [UIButton buttonWithType:UIButtonTypeCustom]; 
       [b setFrame:CGRectMake(0, 0, 50, 50)]; 
      } 


     } 
     ((UILabel*)[cell viewWithTag:100]).text = arrayResourceColumns[indexPath.section][indexPath.row][@"label"]; 
     ((UITextField*)[cell viewWithTag:101]).placeholder = ((UILabel*)[cell viewWithTag:100]).text; 
     ((UITextField*)[cell viewWithTag:101]).text = arrayResourceColumns[indexPath.section][indexPath.row][@"attribute_value"]; 

     if (indexPath.row == [arrayResourceColumns[indexPath.section] count] - 1) 
     { 
      ((UITextField*)[cell viewWithTag:101]).enabled = NO; 
     } 
    } 
} 
+0

看起來你使用標籤100和101來訪問單元格的子視圖。但是你把它們添加到單元格的位置?他們應該添加在'cell == nil'的情況下順便說一句。 –

+0

@Khanh標籤是textlabel和textfield,textlabel和textfield是在故事板的uitableviewcell原型中添加的 – Ammad

+0

@ user1699419更好的是,您可以使用自己的自定義表格視圖單元格。在這裏你可以添加像UIButton,UILabel和UITextField等子視圖...你有解決方案嗎? –

回答

2

有一些方法來增加對UITAbleViewCell按鈕:
1)如果你使用的是故事板,您可以創建電池原型按鈕,比你可以用tag訪問此按鈕屬性
2)子類UITableViewCell,並添加上init
3按鈕)添加按鈕在tableView:cellForRowAtIndexPath:方法細胞

UPD
Here is教程如何自定義UITableViewCell與故事板

+0

(對不起,這是錯誤的)謝謝@KhanhNguyen –

+2

@HermannKlecker'UITableViewCell'是'UIView',*不* UIViewController',沒有'viewDidLoad'和'init –

+0

選項3是可能的,但對初學者不可取,雖然它似乎很容易 - 它不是。除非按鈕在所有單元格上,否則cellForRow ...是一個不錯的地方,但我如果按鈕不在所有單元格上,那麼它需要一些智能編碼以及重用邏輯,以避免奇怪的效果,例如當單元格變爲可見時每次向單元格添加按鈕或滾動時出現在重用單元格中的按鈕等等 –

相關問題