如何知道UIView的当前规模?

Jon*_*han 17 zoom objective-c scale uiview ios

你如何找到一个UIView?的当前比例(缩放级别)?

Tim*_*Tim 46

如果您将缩放变换应用于视图,则该变换将通过UIView上的transform属性可用(足够适当).根据CGAffineTransform文档,缩放变换将在变换矩阵中的坐标(1,1)和(2,2)处具有非零值; 因此,您可以通过以下方式获得x和y比例因子:

CGFloat xScale = view.transform.a;
CGFloat yScale = view.transform.d;
Run Code Online (Sandbox Code Playgroud)

  • 我已经尝试过了,但是没有用。在这种情况下,我在某个地方犯了一个错误。感谢您的答复 ! (2认同)
  • 这里请注意:如果仅缩放视图,则效果很好。但是,当视图也旋转时,它会得到错误的值。@Margaret 的答案在这种情况下有效,即 `sqrt(Double(transform.a * transform.a + transform.c * transform.c))`。 (2认同)

Mar*_*ret 5

根据此消息来源,使用此方法将为您提供缩放比例,而不考虑应用于变换的旋转或平移:

func scale(from transform: CGAffineTransform) -> Double {
    return sqrt(Double(transform.a * transform.a + transform.c * transform.c));
}
Run Code Online (Sandbox Code Playgroud)

我知道我参加晚会很晚,但是在我的情况下,接受的答案无效。