如何实现DataSheet

时间:2013-12-26 06:09:26

标签: ios iphone uitableview uicollectionview

我想实现数据表以显示用户的历史记录。我想实现这样的设计:

enter image description here

但我不知道该怎么做......任何人都可以帮助我

编辑: enter image description here

2 个答案:

答案 0 :(得分:2)

在特定位置添加水平线,在位置添加标签,它将如下所示。

创建一个tableview,而不是在cellForRowAtIndexPath方法中添加此代码..

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    NSString *SimpleTableIdentifier;
    UITableViewCell * cell;

    SimpleTableIdentifier = @"SimpleTableIdentifier";
    cell = [tableView  dequeueReusableCellWithIdentifier: nil];

    if(cell == nil) {

        cell = [[UITableViewCell alloc]
                initWithStyle:UITableViewCellStyleDefault
                reuseIdentifier:SimpleTableIdentifier];


        UILabel * numLbl = [[UILabel alloc] initWithFrame:CGRectMake(0,5,33,30)];
        numLbl.text = @"1";
        [numLbl setFont:[UIFont fontWithName:@"Helvetica" size:10.0]];
        numLbl.backgroundColor = [UIColor clearColor];
        [cell addSubview:numLbl];

        UILabel * nameLbl = [[UILabel alloc] initWithFrame:CGRectMake(30,5,50,30)];
        nameLbl.text = @"john%Lakeview";
        [nameLbl setFont:[UIFont fontWithName:@"Helvetica" size:10.0]];
        nameLbl.backgroundColor = [UIColor clearColor];
        [cell addSubview:nameLbl];


        //create a hoizontal separator in cell to display it like column
        UIView* hSeparatorview1 = [[UIView alloc] initWithFrame:CGRectMake(25, 0, 1, 30)];
        hSeparatorview1.backgroundColor = [UIColor blackColor];
        hSeparatorview1.tag = 1;
        [cell addSubview:hSeparatorview1];

        UIView* hSeparatorview2 = [[UIView alloc] initWithFrame:CGRectMake(85, 0, 1, 30)];
        hSeparatorview2.backgroundColor = [UIColor blackColor];
        hSeparatorview2.tag = 2;
        [cell addSubview:hSeparatorview2];
    }

    return cell;
}

//this method is used to set the hight of the tableview cell
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath      *)indexPath;
{
    return 30;
}

我只为两个标签和两个水平视图创建了它,但您可以根据需要创建任意数量。

是的,请忘记将此代码放在didSelectRowAtIndexPath中,否则当用户点击单元格时,水平视图将消失。

- (void)tableView:(UITableView *)atableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //get the cell which is selected
    UITableViewCell *selectedCell = [atableView cellForRowAtIndexPath:indexPath];

    //set cell horizontal saparator view color of selected cell bcoz when cell selected all view color is gone
    UIView *hSeparatorview1=[selectedCell viewWithTag:1];
    hSeparatorview1.backgroundColor = [UIColor blackColor];

    UIView *hSeparatorview2=[selectedCell viewWithTag:2];
    hSeparatorview2.backgroundColor = [UIColor blackColor];

}

答案 1 :(得分:0)

最好尝试使用Custom tableview Cell作为文本,使用UIViews作为行。我也在我的应用程序中也这样做。