Wim*_*tra 4 iphone cocoa-touch ios4
目前我试图在我的iPhone应用程序中显示一个简单的表,我使用UITableViewCell的样式UITableViewCellStyleValue1(图像在左边,详细标签右对齐).单元格都具有默认高度(50.0f).在我将图像添加到单元格之前,我将图像的大小调整为40x40,这样它就不是单元格的总高度(我认为看起来很难看).
我这个代码执行此操作:
cell.imageView.image = [UIImage imageNamed:@"icon.png"];
cell.imageView.image = [RootViewController imageWithImage:cell.imageView.image scaledToSize:CGSizeMake(40, 40)];
Run Code Online (Sandbox Code Playgroud)
这一切都非常好,完美无瑕.但我想在iPhone 4上实现这一点(具有更高分辨率的屏幕).问题是,iPhone 4上的所有内容都没有问题,但图像看起来非常像素化.
原因在于屏幕上的所有内容都被夸大以扩展到新的分辨率,也包括图像,所以图像可能应该是80x80.但是当我将它们调整为80x80(原件为120x120)时,由于缩放的原因,它们看起来很大.
有没有办法让我的图像不是表格单元的完整高度,但我希望它们在iPhone 4上的分辨率更高.我应该为此创建一个全新的视图吗?
哎呀,在第一次回复后,我意识到我自己的书面功能缺失了:
+ (UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize
{
UIGraphicsBeginImageContextWithOptions(newSize, NO, [[UIScreen mainScreen] scale]);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,在第一次回复之后,我尝试使用UIGraphicsBeginImageContextWithOptions方法来处理它,但不知何故,这会产生一个空图像.
我假设你写了"imageWithImage:scaledToSize:",对吗?
我进一步假设你在这个调用中使用"UIGraphicsBeginImageContext(yourSize)".如果您的平台是iPhone 4,请将其替换为"UIGraphicsBeginImageContextWithOptions(yourSize,NO,2.0)".
"2.0"定义点的比例因子(以点为单位定义大小而不是以像素为单位).在视网膜前显示器上,一个点是1x1像素.在视网膜显示器上,一个点是2x2像素.
编辑:确保您的资源中有一个名为"icon@2x.png"的高分辨率版本的"icon.png".如果它是视网膜显示器,它会自动加载.
| 归档时间: |
|
| 查看次数: |
1656 次 |
| 最近记录: |