有没有办法以编程方式在此图像上执行UITableView背景?我的意思是做顶部和左边界黑暗,右边和底部白色。如果不可能,我怎么能用一个图像来实现它(我的UITableViewCell可能有不同的高度)?谢谢!
答案 0 :(得分:0)
您可以使用coregraphics EOClip剪切主框的形状,然后应用2个每个像素大小的阴影。
答案 1 :(得分:0)
您可以使用Core Graphics实现此目的。
有关如何使用Core Graphics的教程,请参阅this。
请注意,这可能会更加复杂并且涉及到您想要实现的目标,并且可能存在更简单的解决方案,但如果所有其他方法都失败了,那么CG肯定会有效:)。
答案 2 :(得分:0)
你可以制作一个黑色半透明圆角矩形的小方形png图像,边框上有高光和阴影。
然后您使用UIImageView
制作imageView.contentStretch = CGRectMake(0.5f, 0.5f, 0, 0)
并将其设置为您的桌子或单元格的背景视图。
答案 3 :(得分:0)
你可以使用这个很棒的教程http://cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html
基本上改变此方法中的背景图像:
- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
/// some code....
UIImage *rowBackground;
UIImage *selectionBackground;
NSInteger sectionRows = [aTableView numberOfRowsInSection:[indexPath section]];
NSInteger row = [indexPath row];
if (row == 0 && row == sectionRows - 1)
{
rowBackground = [UIImage imageNamed:@"topAndBottomRow.png"];
selectionBackground = [UIImage imageNamed:@"topAndBottomRowSelected.png"];
}
else if (row == 0)
{
rowBackground = [UIImage imageNamed:@"topRow.png"];
selectionBackground = [UIImage imageNamed:@"topRowSelected.png"];
}
else if (row == sectionRows - 1)
{
rowBackground = [UIImage imageNamed:@"bottomRow.png"];
selectionBackground = [UIImage imageNamed:@"bottomRowSelected.png"];
}
else
{
rowBackground = [UIImage imageNamed:@"middleRow.png"];
selectionBackground = [UIImage imageNamed:@"middleRowSelected.png"];
}
((UIImageView *)cell.backgroundView).image = rowBackground;
((UIImageView *)cell.selectedBackgroundView).image = selectionBackground;
// more code...
你只能使用中间行,因为这段代码有3个图像,一个用于第一行,一个用于最后一行,一个用于中间行。希望它有所帮助。