在我的应用程序中,我正在为TableView使用Grouped样式。在那里我想自定义单元格选择Style.I希望选择样式为红色。
我正在使用以下代码:
UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:[UIColor redColor];
[cell setSelectedBackgroundView:bgColorView];
[bgColorView release];
使用上面的代码。我有一个问题。因为我已经采取了分组样式表,在 选择第一行和最后一行时,选择将显示为带有尖边的矩形而不是 在角落附近出现。
任何人都可以帮助我。 在此先感谢。
答案 0 :(得分:3)
试试这个,
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
cell.selectedBackgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SelectedCellBackground.png"]] autorelease];
}
// Cell configuration takes place here
}
答案 1 :(得分:1)
添加QuartzCore框架。并在.m文件中导入QuartzCore / QuartzCore.h框架。然后在cellForRowAtIndexPath方法中添加以下代码。
UIImageView *imv = [[UIImageView alloc]init];
imv.backgroundColor=[UIColor redColor];
[cell setSelectedBackgroundView:imv];
CALayer *layer = imv.layer;
[layer setMasksToBounds:YES];
[layer setCornerRadius:10.0];
[imv release];
答案 2 :(得分:0)
覆盖子类中的-(void)setSelected:animated:
。
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
if (selected)
[self setBackgroundColor:[UIColor redColor]];
else
[self setBackgroundColor:[UIColor whiteColor]];
}
如果animated
为YES,您可以在此处添加精美动画以在选择时淡入和淡出背景,并取消选择。
一般来说,UITableViewCell
对于子类来说可能有点尴尬,请耐心等待。
答案 3 :(得分:-2)
UIImageView *imageVieww=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, cell2.bounds.size.width, cell2.bounds.size.height)];
imageVieww.image=[UIImage imageNamed:@"mavilik.png"];
[cell2 setSelectedBackgroundView:imageVieww];
[imageVieww release];