自定义单元格选择中的问题iPhone中UITableView中的样式

时间:2011-06-25 08:04:31

标签: iphone objective-c uitableview

在我的应用程序中,我正在为TableView使用Grouped样式。在那里我想自定义单元格选择Style.I希望选择样式为红色。

我正在使用以下代码:

UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:[UIColor redColor];

[cell setSelectedBackgroundView:bgColorView];
[bgColorView release];

使用上面的代码。我有一个问题。因为我已经采取了分组样式表,在      选择第一行和最后一行时,选择将显示为带有尖边的矩形而不是       在角落附近出现。

任何人都可以帮助我。 在此先感谢。

4 个答案:

答案 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];