如果单元格被舍入,如何从UITableView侧隐藏背景图像

时间:2013-04-03 10:56:36

标签: ios objective-c uitableview

我正在为我的tableview使用自定义单元格。我使用带有圆角边框的渐变图层作为单元格的背景,因为tableview的背景图像在单元格的角落可见(如图所示)。

Figure

我可以做些什么来隐藏这些角落?我的代码如下:

在viewDidLoad中,表格已设置为:

Table.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mac-gray.png"]];
    Table.separatorColor = [UIColor clearColor];
    Table.rowHeight = 83;
    Table.showsVerticalScrollIndicator = NO;
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
@try {
  static NSString *cellIdentifier;
//[self adjustHeightOfTableview:tableView];

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    cellIdentifier = @"Cell";

    MarketWatch_iPhoneCell *cell = (MarketWatch_iPhoneCell *)[tableView dequeueReusableCellWithIdentifier:nil];
        if (cell == nil)
        {                
            NSString *nibName = @"iPhoneCell";

            NSArray *nib = [[NSBundle mainBundle] loadNibNamed:nibName owner:self options:nil];
            cell = (MarketWatch_iPhoneCell *)[nib objectAtIndex:0];

        }
    cell.layer.cornerRadius = 15.0;
    cell.clipsToBounds = YES;
    [cell addGradient];

    cell.selectionStyle = UITableViewCellSelectionStyleNone;

.......
return cell;
}


-(void) addGradient
{
    //adding gradient to cell
    gradLayer = [CAGradientLayer layer];
    gradLayer.colors = [NSArray arrayWithObjects:
                        (id)[UIColor darkGrayColor].CGColor,
                        (id)[UIColor colorWithRed:45/255 green:45/255 blue:45/255 alpha:1.0].CGColor,
                        (id)[UIColor colorWithRed:22/255 green:22/255 blue:22/255 alpha:1.0].CGColor,
                        (id)[UIColor blackColor].CGColor,
                        nil];
    CGRect frame = self.frame;
    frame.size.height -= cellMargin;
    gradLayer.frame = frame;

    gradLayer.cornerRadius = self.layer.cornerRadius;
    gradLayer.borderWidth = 1.0;
    gradLayer.borderColor = defaultColor;

    [self.layer insertSublayer:gradLayer below:self.contentView.layer];

}

修改

我为表格设置了背景图片,以便在用户尝试滚动最大内容偏移量时显示图片。

如果我尝试使用colorwithpatternimage按照@Viral的建议重复我的图像模式,当我尝试滚动最大内容偏移量时,该模式将可见。

所以这是我的两个问题:

1)如果我为桌子设置了背景图像并且有圆角的单元格,我可以隐藏角落吗?

2)如果使用图像要简单得多,那么图像应该具有什么尺寸,如何设计以便如果用户滚动超出偏移量,那么该图案就不会被跟踪。

请有人指导我。感谢...

3 个答案:

答案 0 :(得分:0)

在您创建的UITableView添加两行。

self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.opaque = NO;

还将cell.backgroundColor = [UIColor clearColor];放入cellForRowAtIndexPath方法。

<强> EDITE:

cell.backgroundView.backgroundColor = [UIColor clearColor];

答案 1 :(得分:0)

请勿使用以下代码..

Table.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mac-gray.png"]];//Don't use this code..

您可以使用以下代码。如果您想要背景图片,则可以将其设置为self.view

Table.backgroundView.backgroundColor = [UIColor clearColor];
Table.backgroundColor = [UIColor clearColor];

你可以尝试一下。我认为这会对你有所帮助..

答案 2 :(得分:0)

将UITableView的backgroundView设置为nil。然后设置你想要的任何颜色。

_myTableView.backgroundView = nil;
_myTableView.backgroundColor = [UIColor clearColor];