iphone代码 - 使用自定义表而不是默认表

时间:2010-01-05 15:47:34

标签: iphone objective-c

我正在使用默认样式表,
我想在表格中添加更多行,我该如何自定义它?

代码:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
                                   reuseIdentifier:CellIdentifier] autorelease];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
}

// Leave cells empty if there's no data yet
if (nodeCount > 0)
{
    // Set up the cell...
    ARecord *aRecord = [self.entries objectAtIndex:indexPath.row];

    cell.textLabel.text = aRecord.lDate;
    cell.detailTextLabel.text = aRecord.WNum;

    // Only load cached images; defer new downloads until scrolling ends
    //(!aRecord.appIcon) - use icon
    if (!aRecord.appIcon)
    {
        if (self.tableView.dragging == NO && self.tableView.decelerating == NO)
        {
            [self startIconDownload:aRecord forIndexPath:indexPath];
        }
        // if a download is deferred or in progress, return a placeholder image
        cell.imageView.image = [UIImage imageNamed:@"Placeholder.png"];                
    }
    else
    {
        cell.imageView.image = aRecord.appIcon;
    }

}

return cell;

}

3 个答案:

答案 0 :(得分:1)

tableview中的行数由您在

中返回的内容决定

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

如果你在那里返回500,你将有一个500行表。

答案 1 :(得分:1)

不确定我是否理解这个问题。表中的节和行的数量由表视图的UITableViewDataSource控制(在大多数代码示例中,该协议由视图的控制器实现,但它可以是一个单独的对象)。

您发布的代码在此过程的后期发挥作用:在视图确定了存在的行数,总数以及当前在屏幕上的行之后,需要渲染这些行。但是,一般来说,它和UITableViewDelegate协议的其他方法是如何自定义表的外观和行为。 (以及视图本身的属性。)

答案 2 :(得分:0)

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {     返回1; }

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {     NSString * CellIdentifer = [NSString stringWithFormat:@“%i”,indexPath.row];     UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifer];     如果(细胞==无){         cell = [self myCustomCell:CellIdentifer dicToSet:[tblArray objectAtIndex:indexPath.row]];         [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];     }     返回细胞; }

- (UITableViewCell *)myCustomCell:(NSString *)CellIdentifer dicToSet:(NSDictionary *)dicToSet {     UITableViewCell * cell = [[[UITableViewCell alloc] initWithFrame:CGRectMake(0,0,320,44)reuseIdentifier:CellIdentifer] autorelease];

UIImageView *imgV=[[UIImageView alloc] initWithFrame:CGRectMake(2, 2, 40, 40)];
[imgV setImage:[UIImage imageNamed:[dicToSet valueForKey:@"Photo"]]];
[cell addSubview:imgV];
[imgV release];




return cell;

}