如何在Table View右上角设置UIImage。我正在使用表格视图显示iPad应用程序并显示联系人列表。点击联系人表视图时想要显示右侧详细信息...这里我想放置一个在表格视图中选择的图像...
任何人都给我这个建议
由于
请在此处查看我的代码
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
![enter image description here][1]
UIImageView *imv = [[UIImageView alloc]initWithFrame:CGRectMake(347, 0.5, 14, 48)];
imv.image=[UIImage imageNamed:@"activeBg.png"];
[cell.selectedBackgroundView addSubview:imv];
}
预期产出:
我的输出:
二手图片:
更改x值后看到此输出:
答案 0 :(得分:1)
首先,请注意浮动坐标,因为它们可能看起来模糊!
UITableViewCell的宽度是多少?您应该根据您的单元格大小计算坐标:
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
CGRect rectImageView = CGRectMake(cell.frame.size.width - 14, 1, 14, 48); // maybe even y and height is calculateable
UIImageView *imv = [[UIImageView alloc]initWithFrame:rectImageView];
imv.image=[UIImage imageNamed:@"activeBg.png"];
[cell.selectedBackgroundView addSubview:imv];
[cell setClipsToBounds:NO]; // do not clip subviews
}
此外,setClipsToBounds非常重要,如果我的内存为我服务,则YES是默认值...
答案 1 :(得分:1)
用viewDidLoad:
方法写两行。
arrowImage = [UIImage imageNamed:@"image"];
[tableView setClipsToBounds:NO];
现在你要在didSelectRowAtIndexPath:
做的是:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self addArrowToIndexPath:indexPath];
}
这里是方法定义:
-(void)addArrowToIndexPath:(NSIndexPath *)indexPath
{
CGRect rect = [tableView rectForRowAtIndexPath:indexPath];
if (arrowView)
{
[arrowView removeFromSuperview];
arrowView = nil;
}
// arrowView is an UIImageView declared globally
arrowView = [[UIImageView alloc] initWithImage:arrowImage];
rect.origin.x = CGRectGetMaxX(rect);
rect.size = arrowImage.size;
[arrowView setFrame:rect];
[tableView addSubview:arrowView];
}
注意:还要设置行高= arrowImage.size.height,即它可以适合单元格高度。
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return arrowImage.size.height;
}
您可以直接下载sample。
答案 2 :(得分:0)
尝试使用属性
[view setClipsToBounds:NO];
我不确定你必须设置此NO,但是尝试设置self.view,UITableView或Cell ..
答案 3 :(得分:0)
Gradiented background是cell.backgroundView?似乎你的activeBg.png在右边部分是半透明的,你可以通过它看到cell.backgroundView。我看到三个解决方案: