我从网上下载了文本和图片数据。我将这些数据放入UITableView中,并希望图像成为UITableViewCell的背景。
所有图片都具有相同的分辨率620x350。
由于各款iPhone尺寸不同,因此我需要根据屏幕大小缩放图像的宽度和高度,并对UITableViewCell进行相同处理。
有哪些最佳解决方案?
谢谢。
由于各款iPhone尺寸不同,因此我需要根据屏幕大小缩放图像的宽度和高度,并对UITableViewCell进行相同处理。
有哪些最佳解决方案?
谢谢。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
static CGFloat cellDefaultHeight = /*the default height of the cell*/;
static CGFloat screenDefaultHeight = /*the default height of the screen i.e. 480 in iPhone 4*/;
CGFloat factor = cellDefaultHeight/screenDefaultHeight
return factor * [UIScreen mainScreen].bounds.size.height;
}
UIImageView
的 contentMode
设置为 AspectFill
。只需使用- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
CGFloat aspectRatio = 350.0f/620.0f;
return aspectRatio * [UIScreen mainScreen].bounds.size.width;// assuming that the image will stretch across the width of the screen
}
HTTableViewDelegate
中使用-tableView:heightForRowAtIndexPath:
方法来返回每个单元格的高度。在你的情况下,你需要像这样的代码:- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return [UIScreen mainScreen].bounds.size.height;
}