在我的项目中,我有带有静态单元格的tableViews和带有动态单元格的tableViews。为了进行自定义,我设法在单元格(分组的sytle)上获得了渐变背景。

当我根据行的位置(顶部,底部,中间或单个)在cellForRowAtIndex ...中设置背景视图时,它可以与动态TableViews一起正常使用。

但是,当我尝试在静态tableview单元上实现它时,它不起作用。我已经尝试实现cellForRowAtindex ...,但是它崩溃了。

有人有主意吗?

更新:cellForRow的代码。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    UACellBackgroundView *bgw=[[UACellBackgroundView alloc]init];

    if (indexPath.row==0) {

        bgw.position = UACellBackgroundViewPositionTop;
        cell.backgroundView=bgw;

    }else if (indexPath.row==2){

        bgw.position = UACellBackgroundViewPositionBottom;
        cell.backgroundView=bgw;

    }else {
        bgw.position = UACellBackgroundViewPositionMiddle;
        cell.backgroundView=bgw;
    }

  //  cell.backgroundView=bgw;


    return cell;
}

顺便说一句,我从这里得到的Background视图:http://code.coneybeare.net/how-to-make-custom-drawn-gradient-backgrounds和这里:http://pessoal.org/blog/2009/02/25/customizing-the-background-border-colors-of-a-uitableview/

如果有人感兴趣

最佳答案

看起来您没有分配UITablViewCell,需要分配单元格。

例如:

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        // alloc the UITableViewCell
        // remeber if you are not using ARC you need to autorelease this cell
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    cell.textLabel.text = @"Cell Name";
    cell.detailTextLabel.text = @"Cell Detail";

    return cell;
}

添加以下语句:
if (cell == nil) {
    // alloc the UITableViewCell
    // remeber if you are not using ARC you need to autorelease this cell
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

08-16 14:29