在我的项目中,我有带有静态单元格的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];
}