0

是否可以将 CGPoint 作为子视图放置在 UIView 内,这样当我旋转 UIView 时,CGPoint 也会随之旋转。

4

2 回答 2

1

CGPoint 是一个逻辑结构,而不是图形。话虽如此,以下将产生一个围绕另一个旋转的点(称为点)。这可能不直接适用,但应该给你一些方向。关键是CGAffineTransform。

CGAffineTransform translateTransform = CGAffineTransformMakeTransation(point.x, point.y);
CGAffineTransform rotateTransform = CGAffineTransformMakeRotation(angle);
CGAffineTransform customTransform = CGAffineTransformConcat(CGAffineTransformConcat( CGAffineTransformInvert(translateTransform), rotateTransform), translateTransform);
newPoint = CGPointApplyAffineTransform(initialPoint, customTransform);
于 2011-02-09T05:33:15.280 回答
0

CGPoint(like CGSizeor CGRect) 是 C 结构,不应该是“可绘制的”。我的意思是它们只是坐标或几何“东西”的数学表示,然后不可能将它们附加到您的显示树中。

如果您需要在您的中显示一个“点”UIView并且您需要控制它,只需UIView向您的父级添加一个UIView具有颜色背景的 1px 正方形框架的子级(如果您需要显示它)。在这种情况下,对父 UIView 的任何空间修改都会影响孩子UIView(甚至旋转)。

否则,如果您需要知道CGPoint相对于另一个点旋转角度的位置,请参阅包含您需要的数学的这个不错的答案。

在 2D 中将一个点旋转另一个点

再见!

于 2011-02-09T05:42:17.633 回答