2011-05-26 123 views
3

我正在開發一個應用程序,我需要從用戶使用分段表視圖進行文本輸入。 我從來沒有使用表視圖從用戶的文本輸入。 請看看圖像的麪糊理解。從uitableviewcell取文本輸入

enter image description here

我想這In-place editing of text in UITableViewCell?

但這不是完全填充了什麼我想。

當我使用下面的代碼時,我得到的輸出與上面的圖像不相似。

UITextField *txtField=[[UITextField alloc]initWithFrame:CGRectMake(45, 0, cell.frame.size.width, cell.frame.size.height)]; 
    txtField.autoresizingMask=UIViewAutoresizingFlexibleHeight; 
    txtField.autoresizesSubviews=YES; 
    [txtField setBorderStyle:UITextBorderStyleRoundedRect]; 
    [txtField setPlaceholder:@"Type Data Here"]; 

    if (cell == nil) 
    { 
     cell.accessoryType = UITableViewCellAccessoryNone; 
    } 
    [cell addSubview:txtField]; 

enter image description here

看到問題3和5

感謝的答案。

+0

爲什麼您發佈的鏈接不符合要求?請詳細解釋一下你想要實現什麼...... – sergio 2011-05-26 12:53:49

+0

@sergio:嗨,當我使用鏈接中給出的代碼來解決我的查詢時,我沒有看到與圖像中顯示的行爲相同在我的問題。這是我關注的問題。 – iCoder86 2011-05-27 07:29:08

+0

你能解釋行爲有什麼不同嗎?你能否發佈你正在使用的'tableView:cellForRowAtIndexPath'的確切代碼,這將有很大的幫助... – sergio 2011-05-27 07:36:32

回答

4

您需要將UITextField添加到內容視圖對應的單元格,您需要Text字段的位置。 您在cellForRowAtIndexPath:

例尋找到細胞indexpath.sectionindexpath.row選擇您想要的單元格:

if(indexPath.section == CELL_SECTION) { 
    if(indexpath.row == CELL_ROW_INDEX) { 
     UITextField *txtField=[[UITextField alloc]initWithFrame:CGRectMake(5, 5, 320, 39)]; 
     txtField.autoresizingMask=UIViewAutoresizingFlexibleHeight; 
     txtField.autoresizesSubviews=YES; 
     txtField.layer.cornerRadius=10.0; 
     [txtField setBorderStyle:UITextBorderStyleRoundedRect]; 
     [txtField setPlaceholder:@"Type Data Here"]; 
     [cell.contentView addSubView:textField]; 
    } 
} 
+0

@iPhonePrg:你好,我使用了我第一次嘗試的代碼,但是這個代碼的問題是它添加了簡單的文本字段,它的行爲與我在我的問題中提出的建議不同。 – iCoder86 2011-05-27 05:11:59

+0

那你想要什麼? – PgmFreek 2011-05-27 07:23:00

+0

這條線做什麼? txtField.autoresizingMask = UIViewAutoresizingFlexibleHeight; – 2011-07-29 18:49:56

0

你需要一個定製UITableViewCell與它UITextfield。你可以設置一個tagtextField爲每個單元來標識它們。如果您想對文本或其他內容進行驗證,則還可以實施UITextFieldDelegate。然後您可以根據標籤獲取textfield的值。

1

第一

  1. 你需要做的UITableViewCell子類的第一件事。

  2. Ofcoures該類將有 文本字段(TF)作爲一個屬性來訪問 是TF

  3. 一套標記爲TF而 初始化它。

  4. 在委託方法 tableView:celForRowAtIndexPath: 得到由標籤使用方法TF即TF

    = [細胞viewWithTag:YOUR_TAG];

  5. 現在你可以做任何你想要的。

  6. 現在假設你想這個方法之外的價值 則有 雙向周圍

    一個。做一個全局變量並存儲它的值

    b。首先通過cellforRowAtIndexPath通過tableView方法找到單元格,然後重複步驟4和5