我正在为我的tableview使用自定义单元格。我使用带有圆角边框的渐变图层作为单元格的背景,因为tableview的背景图像在单元格的角落可见(如图所示)。
我可以做些什么来隐藏这些角落?我的代码如下:
在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)如果使用图像要简单得多,那么图像应该具有什么尺寸,如何设计以便如果用户滚动超出偏移量,那么该图案就不会被跟踪。
请有人指导我。感谢...
答案 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];