基于数据项的自定义UITableview单元

时间:2014-10-15 07:37:15

标签: ios uitableview

一切都很好但是,我需要数组对象文本是等于@"Add Station"我想在那里的表视图单元格中创建一个UILabel,但是我无法做到这一点可以任何一个帮帮我:

在.h`:

arrPlaceholder = [[NSMutableArray alloc]initWithObjects:@"Station Name",@"source Station",@"destination Station",@"Add Station", nil];
.m中的

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
{
    return [arrPlaceholder count];
}


-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentyfire = @"cellIdentyfire";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentyfire];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentyfire];
       UITableView *tblView = (UITableView *)[self.view viewWithTag:kTagTblStn];
            UITextField *txtDetails = [[UITextField alloc]init];
            txtDetails.frame = CGRectMake(5, 0,tblView.frame.size.width-10, 44);
            [txtDetails.layer setCornerRadius:5.0];
            txtDetails.backgroundColor = [UIColor whiteColor];
            txtDetails.delegate = self;
            txtDetails.tag = kTagTxtStn;
            txtDetails.delegate = self;
            [cell.contentView addSubview:txtDetails];
    }
    UITextField *fillTblTxt = (UITextField *)[fillRowCell.contentView viewWithTag:kTagTxtStn];
    fillTblTxt.placeholder = [arrPlaceholder objectAtIndex:indexDetails.row];    
    return cell;
}

2 个答案:

答案 0 :(得分:1)

试试这个:

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    #Your Code
    if([[textContainingArray objectAtIndex:indexPath.row] equalToString:@"Add StationName"]){
      #Add Label here
      #Then Add Label to cell
    }
    return cell;
}

答案 1 :(得分:0)

有两种方法可以达到这个目的。 1:使用两种单元格,一种使用UILabel而另一种不使用,你还需要两个标识符才能重用,在cellForRowAtIndexPath函数中,通过标识符获取单元格。

2:这是一个简单的技巧,只需为所有单元格创建UILabel,并根据数组内容设置标签隐藏属性。它需要更少的代码,但需要更多的视图