iOS,自定义表格视图

时间:2014-07-08 13:42:50

标签: ios arrays image tableview

我需要在同一张图片中绘制一个表格视图:

enter image description here

我需要在cellForRowAtIndexPath方法中添加什么内容?因为我创建了包含数据的NSArray,但它显示为列表:

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

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.textLabel.font = [UIFont systemFontOfSize:15];
        //cell.textLabel.textAlignment = UITextAlignmentCenter;
    }

    cell.textLabel.text =[list objectAtIndex:indexPath.row];


    cell.textLabel.textColor = [UIColor colorWithRed:0.255 green:0.239 blue:0.239 alpha:1];;

    UITableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    cell1.textLabel.text =[list objectAtIndex:indexPath.row];
    cell1.textLabel.textColor = [UIColor colorWithRed:0.255 green:0.239 blue:0.239 alpha:1];;


    UIView * v = [[UIView alloc] init];
    v.backgroundColor = [UIColor grayColor];
    cell.selectedBackgroundView = v;


    return cell;


}

2 个答案:

答案 0 :(得分:0)

据我所知,我知道您希望显示一个数据网格(来自您提供的图片),这在iOS中无法快速/完美地完成。

肮脏的方法是自定义UITableViewCell,使1个单元格= 1行并尝试使所有内容呈现在应该的位置。

很好但很长的方法是使用UICollectionView。您需要自定义流程布局,这将是非常耗时的。

答案 1 :(得分:0)

你应该是UITableViewCell的子类 - > CustomCell

CustomCell.h - >添加一些字符串属性(Name,Addr,Phone,id)               - >添加一些标签(UILabel * lblName,lblAddr, lblPhone,lblid)

CustomCell.m - > @synthesize属性

创建网格图像并将其加载到表格后面 使表透明 使细胞透明 ...

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

    static NSString *CellIdentifier = @"Cell";

    CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.lblName = [UILabel alloc] initWithFrame:(CGRectMake(x,y,w,h)) // enter values to correspond with your picture
        //... do the same for other controls in your custom cell
        //cell.textLabel.textAlignment = UITextAlignmentCenter;
    }

    NSDictionary *dicData = [arElements objectAtIndex:indexPath.row];

    [cell.lblName setText:[dicData valueForKey:@"name"]];
    // ... do the same for all properties

    return cell;
}

在基础知识中就是这样,如果你想要你可以在笔尖中创建单元格,那么只有控件的内容应该比IBOutlets更好而且你不会有

    if (cell == nil) {
        cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.lblName = [UILabel alloc] initWithFrame:(CGRectMake(x,y,w,h)) // enter values to correspond with your picture
        //... do the same for other controls in your custom cell
        //cell.textLabel.textAlignment = UITextAlignmentCenter;
    }

阻止,因为它将从xib加载...