微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在iPhone的UITableView中自定义单元格选择样式时出现问题

| 在我的应用程序中,我正在为TableView使用分组样式。在这种情况下,我想自定义单元格选择样式。我希望该选择样式为红色。 我为此使用以下代码
UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:[UIColor redColor];

[cell setSelectedBackgroundView:bgColorView];
[bgColorView release];
通过使用上面的代码我有一个问题。由于我对样式表进行了分组,      选择第一行和最后一行,所选内容将以尖锐的矩形出现,而不是       圆角。 有人可以帮我吗? 提前致谢。     

解决方法

        尝试这个 ,
- (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
}
    ,        添加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];
    ,        覆盖子类中的
-(void)setSelected:animated:
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
  if (selected)
    [self setBackgroundColor:[UIColor redColor]];
  else
    [self setBackgroundColor:[UIColor whiteColor]];
}
如果
animated
是,则可以在此处添加奇特的动画以融合和淡出背景,然后再进行选择和取消选择。 一般来说,
UITableViewCell
对于子类来说可能有点尴尬,请耐心等待。     ,        
 UIImageView *imageVieww=[[UIImageView alloc] initWithFrame:CGRectMake(0,cell2.bounds.size.width,cell2.bounds.size.height)];


    imageVieww.image=[UIImage imageNamed:@\"mavilik.png\"];

     [cell2 setSelectedBackgroundView:imageVieww];

     [imageVieww release];
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。