是否可以将一个CGPoint放在UIView中作为子视图,这样当我旋转我的UIView时,CGPoint就会随之旋转。
答案 0 :(得分: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);
答案 1 :(得分:0)
CGPoint
(如CGSize
或CGRect
)是C结构,不应该是" drawable"。我的意思是他们只是数学表示坐标或几何"东西"然后不可能将它们附加到您的显示树中。
如果您需要显示"点"进入您的UIView
并需要控制它,只需将一个子UIView
添加到您的父UIView
,其中一个1px正方形的框架带有彩色背景(如果您需要显示它)。在这种情况下,对父UIView的任何空间修改都会影响子UIView
(甚至是旋转)。
否则,如果你需要知道CGPoint
相对于另一个点旋转一个角度的位置,请参考这个包含你需要的数学的好答案。
Rotate a point by another point in 2D
侨!