我正在创建一个自定义的tableview,其中包含我创建的自定义单元类。单元格工作完美,我在单元格上创建的UILabel正确匹配,但我所拥有的背景图像由于某种原因不会完全显示。当我使用iPhone 6模拟器时它会显示得很好,但是当我在iPhone 4s模拟器上运行它时看起来会被截断。
以下是我用来填充单元格值的代码:
static NSString * simpleTableIdentifier = @“PeeklyTableCell”;
PeeklyTableCell *cell = (PeeklyTableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"PeeklyTableCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.nameLabel.adjustsFontSizeToFitWidth = YES;
cell.nameLabel.text = @"Group Title"; //Name of group label
//Makes sure the font size readjusts size
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"testImage.jpg"]]; //Group label image
imageView.frame = CGRectMake(0, 0, widthScreen, 80);
imageView.center = imageView.superview.center;
imageView.alpha = 1.0; //opacity of the cell
cell.backgroundView = imageView; //setting the cell to be this image
cell.pointsLabel.text = @"+1000"; //Group points label (Must add the + in front"
cell.pointsLabel.adjustsFontSizeToFitWidth = YES; //Makes sure the font size readjusts the size
return cell;
这是iPhone 4S上的外观截图。如果你不能说,背景图像应该稍微拉伸一点,它的最后一点被截断。此外,由于某种原因,细胞似乎没有接触左壁。
任何帮助都会很棒!感谢。
答案 0 :(得分:0)
您首先设置imageView.center
,然后将其设置为backgroundView
。尝试如下:
imageView.alpha = 1.0; //opacity of the cell
cell.backgroundView = imageView; //setting the cell to be this image
imageView.center = imageView.superview.center;
答案 1 :(得分:0)
你有很多选择可以做到这一点。
首先编辑你的testImage.jpg
并使其与实际尺寸(单元格)和分辨率(设备)相符合
示例:320px X 80px = testImage.jpg
和640px X 160px = testImage@2x.jpg
第二个是使用UIViewContentModeScaleAspectFill
或UIViewContentModeScaleAspectFit
,具体取决于您的喜好..
UIImageView *image = [[UIImageView alloc] init];
image.contentMode = UIViewContentModeScaleAspectFill;
image.contentMode = UIViewContentModeScaleAspectFit;
image.clipsToBounds = YES;
第3次重新缩放图像以适应目标大小:
- (UIImage *)imageWithImage:(UIImage *)image scaleToSize:(CGSize)size
{
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
并使用它:
UIImage *sampleImage = [UIImage imageNamed:@"testImage.jpg"];
imageView.image = [self imageWithImage:sampleImage scaleToSize:CGSizeMake(widthScreen, 80)];