使用CGAffineTransformTranslate移动视图时如何获取当前中心点?

时间:2012-12-09 13:13:05

标签: iphone transform frame cgaffinetransform nslog

我使用CGAffineTransformTranslate移动视图,当我使用NSlog: view.center.x时,移动时此值不会更改?但是我NSlog: view.frame.orgin.x,当我移动时,这个当前值总会改变!那么,我搬家时如何获得当前价值中心?

1 个答案:

答案 0 :(得分:7)

你必须得到框架的中心。这可以很容易地完成。

定义一个这样的函数:

CGPoint CGRectCenter(CGRect rect)
{
    return CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect));
}

然后你可以通过以下方式获得视图的中心:

CGRectCenter(view.frame);

编辑:

我只看了documentation for frame property,并且如果已应用转换,则表示frame的值未定义。使用view.layer.frame可能会更好,因为CALayer的文档不会发出相同的警告。但我怀疑,UIView方法只是调用CALayer方法,所以你可能没问题。