如何为分组表部分设置不同的背景图像..?

Posted

技术标签:

【中文标题】如何为分组表部分设置不同的背景图像..?【英文标题】:How to set different Background Image For Grouped Table Section..? 【发布时间】:2013-12-26 13:25:34 【问题描述】:

您好,我正在尝试为分组表视图部分的背景设置图像(不适用于部分标题),我正在使用以下代码:-

-(void)addBackgroundViewForSectionIndex:(int)tagIndex 

    for (UIView * subview in tbl_home.subviews) 
        if(subview.tag == tagIndex)
            [subview removeFromSuperview];
    

    CGRect sectionFrame = [tbl_home rectForSection:tagIndex];
    UIImageView *newView = [[UIImageView alloc]initWithFrame:sectionFrame];
    newView.tag = tagIndex;
    [newView setImage:[UIImage imageNamed:@"Section@2x.png"]];
    [tbl_home addSubview:newView];
    [tbl_home sendSubviewToBack:newView];


将图像设置为背景,但存在某些单元格未显示或newView 超出某些单元格的问题。

我想像下面的截图一样设置图像:-

【问题讨论】:

nitin 给我一个示例代码,我会为你做的 【参考方案1】:

经过一些更改,现在帮助使用此代码,我成功地使用此代码将图像设置为上图:-

-(void)addBackgroundViewForSectionIndex:(int)tagIndex 

    for (UIView * subview in tbl_home.subviews) 
        if(subview.tag == tagIndex)
            [subview removeFromSuperview];
    

    CGRect sectionFrame = [tbl_home rectForSection:tagIndex];
    UIImageView *newView = [[UIImageView alloc]initWithFrame:sectionFrame];
    newView.tag = tagIndex;
    [newView setImage:[UIImage imageNamed:@"Section@2x.png"]];
    [tbl_home addSubview:newView];
    [tbl_home sendSubviewToBack:newView];


以前我将此方法称为cellForRowIndex,以便每次都调用并产生问题。现在我在

中调用此方法
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

如下所示,现在工作正常:-

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

  [self addBackgroundViewForSectionIndex:indexPath.section];

【讨论】:

以上是关于如何为分组表部分设置不同的背景图像..?的主要内容,如果未能解决你的问题,请参考以下文章

分组 UITableView 上的自定义背景图像

如何为视图设置背景图像?

如何为具有动态宽度的 UIButtons 设置背景?

如何为背景图像的更改设置动画?

如何为 SKScene 设置背景图像?

如何为背景图像添加背景颜色? [复制]