CGAffineTransformMakeTransform和CGAffineTransformScale转换在ios7和ios8中不同

CGAffineTransformMakeTransform和CGAffineTransformScale转换在ios7和ios8中不同,ios8,zooming,cgaffinetransform,cgaffinetransformscale,Ios8,Zooming,Cgaffinetransform,Cgaffinetransformscale,我在viewcontroller中有一个UITableView,希望缩小viewcontroller的中心。它在ios7中运行良好,代码如下: CGSize appSize = [[UIScreen mainScreen] applicationFrame].size; CGAffineTransform affineMatrix = CGAffineTransformMakeTranslation(appSize.width/2, 20); affineMatrix = CGAffineTra

我在viewcontroller中有一个UITableView,希望缩小viewcontroller的中心。它在ios7中运行良好,代码如下:

CGSize appSize = [[UIScreen mainScreen] applicationFrame].size;
CGAffineTransform affineMatrix = CGAffineTransformMakeTranslation(appSize.width/2, 20);
affineMatrix = CGAffineTransformScale(affineMatrix, 0.5, 0.5);
self.transform = affineMatrix;
更新到ios8后,代码可能会像这样运行良好,但在ios7中不起作用:

CGAffineTransform affineMatrix = CGAffineTransformMakeScale(0.5, 0.5);
affineMatrix = CGAffineTransformConcat(affineMatrix,CGAffineTransformMakeTranslation(0, -appSize.height/2+40));
self.transform = affineMatrix;
谁能解释为什么?如何在相同的代码中工作良好?

请参阅文章

它解释了iOS7中仿射变换错误的问题。简单来说,您需要在iOS 7上使用
[UIScreen mainScreen].scale手动将点转换为视网膜设备上的像素