gpt4 book ai didi

ios - 如何在转换前计算 UIView 的框架?

转载 作者:可可西里 更新时间:2023-11-01 06:19:09 24 4
gpt4 key购买 nike

问题

我有一个 UIView,我向它应用了一个 CGAffineTransform。我希望能够知道 View 的框架如果未应用转换

我正在寻找一种(简单的)解决方案来处理变换是“零变换”(不可逆)的情况。

我的尝试

我猜以下不适用于“零变换”。

CGRect result ;

CGAffineTransform transform = self.transform ;

result = CGRectApplyAffineTransform(self.frame, CGAffineTransformInvert(transform)) ;

return result ;

为什么?

我需要为动画做这个:

  • 初始设置:我将transform设置为“0”。 View 已插入,但所有元素的框架就像 View 不在此处一样。
  • 最终设置:我计算所有元素的框架,这次我考虑了新 View 。我将其 transform 设置为“1”。

备注

我的变换是缩放变换。

最佳答案

transform 不影响 centerbounds

所以,你可以通过这个简单的代码来计算它:

    CGPoint center = view.center;
CGSize size = view.bounds.size;

CGRect frameForTransformIdentity = CGRectMake(
center.x - size.width / 2,
center.y - size.height / 2,
size.width,
size.height
);

关于ios - 如何在转换前计算 UIView 的框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26192588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com