检索旋转的UIImageView的所有4个坐标

jar*_*ryd 4 iphone cocoa-touch

如何获得UIImageView的4个坐标?

我知道可以获得CGRect和origin.x和origin.y,但是如何找到所有4个角?

编辑:我正在旋转UIImageViews,这就是为什么我问:P

ken*_*ytm 5

您可以添加矩形的宽度和高度以获得其他3个点的坐标.

CGRect rect = view.bounds;

CGPoint topLeft = rect.origin;
CGPoint topRight = CGPointMake(rect.origin.x + rect.size.width, rect.origin.y);
CGPoint bottomLeft =CGPointMake(rect.origin.x, rect.origin.y + rect.size.height);
CGPoint bottomRight = CGPointMake(rect.origin.x + rect.size.width,
                                  rect.origin.y + rect.size.height);
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用CGPointApplyAffineTransform在指定的变换下获取它们的变换坐标.

CGPoint center = view.center;
CGAffineTransform transf = CGAffineTransformMakeTranslation(-rect.size.width/2,
                                                            -rect.size.height/2);
transf = CGAffineTransformConcat(transf, view.transform);
transf = CGAffineTransformTranslate(transf, center.x, center.y);

topLeft = CGPointApplyAffineTransform(topLeft, transf);
//...
Run Code Online (Sandbox Code Playgroud)

(注意:未经测试.)