iOS-如何使用不同的图像大小(如Facebook新闻提要)正确缩放UIButton?
我正在尝试为一个应用程序复制Facebook的新闻提要,并将有应该显示的图像。这些图像有多种尺寸,所以我应该如何适当地缩放它们以适应细胞而不显得怪异 该单元格包含一个UIButton,然后将图像设置为它。我正在使用一个按钮,因为我想在按下时打开全尺寸图像。如果用点击手势切换到UIImageView更好,我也可以这样做,只是觉得按钮更简单 想法 }iOS-如何使用不同的图像大小(如Facebook新闻提要)正确缩放UIButton?,ios,image,uitableview,uibutton,scale,Ios,Image,Uitableview,Uibutton,Scale,我正在尝试为一个应用程序复制Facebook的新闻提要,并将有应该显示的图像。这些图像有多种尺寸,所以我应该如何适当地缩放它们以适应细胞而不显得怪异 该单元格包含一个UIButton,然后将图像设置为它。我正在使用一个按钮,因为我想在按下时打开全尺寸图像。如果用点击手势切换到UIImageView更好,我也可以这样做,只是觉得按钮更简单 想法 } 使用此选项可根据大小缩放图像。我假设您将使用UITableView来显示这些图像 这将在滚动表视图时产生问题,因为加载行时图像会调整大小,并且需要太多
使用此选项可根据大小缩放图像。我假设您将使用
UITableView
来显示这些图像
这将在滚动表视图时产生问题,因为加载行时图像会调整大小,并且需要太多的处理时间,从而导致滚动不平滑
有两种解决方法:
最好的性能可能是两者兼有,但根据我的经验,实际上只需要其中之一。为什么不通过UIImageView的内置功能处理所有图像大小调整,然后在其上放置一个与它们大小(帧)相同的透明按钮。。。(*要使UIButton透明,只需清除背景色,并将按钮类型设置为自定义(我认为默认设置为圆角矩形或其他)
另一方面,如果您只想检测在UIImageView上的点击,而不想在图像上放置透明的UIButton,只需使用TouchsBegind并检测触摸是否在阵列中的UIImage上。您可以在Quartz 2D framework中使用
[CGAffineTransformMakeScale][1]
轻松缩放视图
#define X_SCALE_FACTOR 2.5
#define Y_SCALE_FACTOR 2.5
UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"myimage.png"]];
imageView.transform = CGAffineTransformMakeScale(X_SCALE_FACTOR, Y_SCALE_FACTOR);
你是真的在看Facebook的新闻提要,还是只是想要一些看起来相似的东西?不,不是在看Facebook的数据。只是模仿他们的新闻提要表来显示我自己的自定义数据。不过,我喜欢他们的“图像单元格”清理方式在允许点击图像以显示全尺寸图像的同时,我们也希望模拟这种情况。虽然这是一种简单的方法,但它存在一些潜在问题:1)无法保持图像的纵横比。2) 如果将生成的
UIImage
保存到磁盘(例如缓存缩略图),它将保存全分辨率图像,而不是缩放图像。请尝试中使用的方法。同时将插值级别设置为上下文。
#define X_SCALE_FACTOR 2.5
#define Y_SCALE_FACTOR 2.5
UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"myimage.png"]];
imageView.transform = CGAffineTransformMakeScale(X_SCALE_FACTOR, Y_SCALE_FACTOR);