假设我UIView
的当前比例为x
。假设我将量表转换应用于UIView
金额的y
,即:
view.transform = CGAffineTransformScale(view.transform, y, y);
。如何确定比例转换后UIView
的比例值(x
和y
?)。
答案 0 :(得分:0)
缩放通过乘法,平移(移动)加法相结合,旋转是矩阵乘法。所有这三个都可以组合成一个AffineTransformation(一个比空间尺寸多1行的矩阵),这些矩阵乘法组合起来。 2D AffineTransformations是3x2或3x3矩阵,额外的列只是使它们更容易使用。
编辑: 使用更清晰的名称:如果他目前的规模是currxs,currys和应用的比例是xs,那么新的比例将是currxs * xs,currys * ys。请注意,应用比例也会缩放AffineTransformation中包含的任何翻译组件,这就是应用程序顺序很重要的原因。
答案 1 :(得分:0)
比例变换将当前比例与比例y相乘。 如果视网膜的比例为2.0,则之后为y * 2.0 所以x * y就是答案。但是不要忘记x.achsis规模和y achsis可以是不同的 x和y的比例令人困惑,如果你的代码中y和x achsis上有不同的比例,那么最好使用s1和s2,或sx,sy。
答案 2 :(得分:0)
如果您只使用CGAffineTransformScale而不是其他转换(如旋转),则非常简单,您可以使用视图框和边界大小来计算生成的比例值。
float scaleX = view.frame.size.width/view.bounds.size.width;
float scaleY = view.frame.size.height/view.bounds.size.height;