我使用 移动视图CGAffineTransformTranslate
,当我使用时NSlog: view.center.x
,这个值在我移动时不会改变吗?但是我NSlog: view.frame.orgin.x
,这个当前值总是在我移动的时候改变!那么,移动时如何获取当前值中心呢?
问问题
3847 次
1 回答
7
你必须得到框架的中心。这可以相当容易地完成。
定义一个这样的函数:
CGPoint CGRectCenter(CGRect rect)
{
return CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect));
}
然后您可以通过以下方式获得视图的中心:
CGRectCenter(view.frame);
编辑:
我刚刚查看了property的文档frame
,它说如果应用了转换,则 valueframe
是未定义的。您可能会更好地使用view.layer.frame
,因为 CALayer 的文档没有带有相同的警告。然而,我怀疑 UIView 方法只是调用 CALayer 方法,所以你可能没问题。
于 2012-12-09T13:29:30.817 回答