2013-07-10 48 views
1

你好我在IOS我已經創建自定義表視圖,我有兩個陣列初學者然後我想既陣列數據在同時一個接在表視圖一個小區內容一起設置I顯示哪些我想圖像..如何在ios中的自定義tableview的一個單元格內容中設置兩個數組數據?

請參考:http://i.stack.imgur.com/WIkaf.png

NSMutableArray *SearchPatientCode; 
    NSMutableArray *SearchPatientName; 
    UITableView *table_SearchPatient; 
    SearchPatientCode=[[NSMutableArray alloc]initWithObjects:@"PH230130420",@"PH230420321",@"Ph450362120", nil]; 

    SearchPatientName=[[NSMutableArray alloc]initWithObjects:@"Rahul Sharma",@"Amit kumar",@"anil sharma", nil]; 

table_SearchPatient=[[UITableView alloc]initWithFrame:CGRectMake(130,40,170,250)style:UITableViewStylePlain]; 
table_SearchPatient.delegate=self; 
table_SearchPatient.dataSource=self; 
table_SearchPatient.layer.borderWidth = 2.0; 
table_SearchPatient.layer.borderColor = [UIColor grayColor].CGColor; 
[self.view addSubview:table_SearchPatient]; 

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath 
    { 
    static NSString *MyIdentifier = @"MyIdentifier"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 

if(tableView==table_SearchPatient) 
{ 

    if (cell == nil) 
    { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier] ; 

    } 

    cell.textLabel.text =[NSString stringWithFormat:@"%@ /n %@",[SearchPatientCode objectAtIndex:indexPath.row],[SearchPatientName objectAtIndex:indexPath.row]]; 
    cell.textLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:10.0f]; 
    // cell.detailTextLabel.text=[SearchPatientName objectAtIndex:indexPath.row]; 
} 
return cell; 
} 

我用這但這並不表明我想......解決這個問題!

+1

設置像'cell.textLabel.numberOfLines = 0;' –

+0

這樣的行的行數這是正確的在字符串中設置兩個數組數據並在單元格上設置文本並在此行上方cell.textLabel.numberOfLines = 2 cell.textLabel。 numberOfLines = 2; cell.textLabel.text = [NSString stringWithFormat:@「%@%@」,[SearchPatientCode objectAtIndex:indexPath.row],[SearchPatientName objectAtIndex:indexPath.row]]; cell.textLabel.font = [UIFont fontWithName:@「Helvetica-Bold」size:12.0f]; – rahul

+0

只是一個建議,你應該考慮一個選擇,將一個數組中的'NSDictionary'對象或一個自定義模型對象'Patient'存儲在一個數組中。如果您想用當前設計向患者添加另一個詳細信息,比如'BloodType',則可能需要另一個陣列,這是不可行的。 – Anupdas

回答

0

添加新UILablenumberOfLines = 2像波紋管......

,如果你想無限符合你的內容數據,那麼你可以用一組numberOfLines = 0做到這一點,並設置lineBreakMode = UILineBreakModeWordWrap

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath 
      { 
       static NSString *MyIdentifier = @"MyIdentifier"; 

       UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 

       if(tableView==table_SearchPatient) 
       { 
       if (cell == nil) 
       { 
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier] ; 
       } 
       UILabel *lbl = [[UILabel alloc]init]; 
       lbl.text = [NSString stringWithFormat:@"%@ /n %@",[SearchPatientCode objectAtIndex:indexPath.row],[SearchPatientName objectAtIndex:indexPath.row]]; 
       lbl.font = [UIFont fontWithName:@"Helvetica-Bold" size:10.0f]; 
       [lbl setFrame:CGRectMake(20, 2, 250, 35)];// set frame which you want 
       [lbl setBackgroundColor:[UIColor clearColor]];// set any color here 
//     lbl.lineBreakMode = UILineBreakModeWordWrap; // set it if you want to height of UILable with its content (Multiple line) 
       lbl.numberOfLines = 2;// Add this line // Set 0 if you want to multiple line. 
       [cell.contentView addSubview:lbl]; 
      } 
      return cell; 
      } 
+0

爲什麼要創建lable到cellForRowIndexpath ..?UILabel * lbl = [[UILabel alloc] init];我們也可以使用cell.textLabel ...? –

+0

沒有這個新的'UILable'我們可以添加一些功能並設置不同的佈局。你不能設置不同的框架。在這裏還有一些功能,它定義了它在UITableViewCell中的委託。如果你使用這個,那麼你可以隨時改變它的佈局.. –

0

您可以使用細節cell.detailTextLabel.text

,或者可以創建自定義單元格和標籤添加到細胞這樣

if (cell == nil) 
{ 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier] ; 

} 

cell.textLabel.text = @""; 
label_name_one = [[[UILabel alloc]initWithFrame:CGRectMake(10, 10, 90, 20)]autorelease]; 
[label_name_one setText:[SearchPatientCode objectAtIndex:indexPath.row]]; 

label_name_two = [[[UILabel alloc]initWithFrame:CGRectMake(92, 30, 170, 80)]autorelease]; 
[label_name_two setText:[SearchPatientCode objectAtIndex:indexPath.row]]; 

根據您的要求設置的矩形框。

0

首先改變你的風格UITableViewCellStyleValue2然後使用多行文本這段代碼單元:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString * cellIdentifier = @"MyIdentifier"; 

    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 

    if (cell == nil) 
    { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 
             reuseIdentifier:cellIdentifier]; 

     [[cell textLabel] setFont:[UIFont fontWithName:@"Helvetica-Bold" size:10.0f]]; 
    } 

    [[cell detailTextLabel] setText:[NSString stringWithFormat:@"%@ %@",[SearchPatientCode objectAtIndex:indexPath.row],[SearchPatientName objectAtIndex:indexPath.row]]]; 
    cell.detailTextLabel.numberOfLines = 2; 
    cell.detailTextLabel.lineBreakMode = NSLineBreakByWordWrapping; 
    return cell; 
} 

希望它可以幫助你。

0

也請確保您查看免費Sensible TableView框架。給定數組,框架會自動在表格視圖中顯示所有值,並在適用的情況下甚至生成詳細視圖。節省了我噸的時間。

相關問題