5

有没有一种简单的方法可以在 UIImageView 的锚点上放置标记(例如十字)?我正在尝试通过它们的锚点排列几个旋转图像,并且能够看到这些点将使工作变得更容易。

非常感谢。

4

1 回答 1

8

您正在询问如何在视图中可视化锚点,但在我看来,您正在要求它,以便您可以帮助对齐锚点。我会尝试回答这两个问题。

可视化锚点。

iOS 上的每个视图都有一个具有锚点的底层。锚点位于层的单位坐标空间中(x 和 y 从 0 到 1)。这意味着您可以将 x 乘以宽度,将 y 乘以高度,以获得视图/图层坐标空间中图层内锚点的位置。然后,您可以在那里放置一个子视图/子图层以显示锚点的位置。

在代码中,您可以执行类似的操作以在锚点所在的位置显示一个小黑点。

CALayer *anchorPointLayer = [CALayer layer];
anchorPointLayer.backgroundColor = [UIColor blackColor].CGColor;
anchorPointLayer.bounds = CGRectMake(0, 0, 6, 6);
anchorPointLayer.cornerRadius = 3;

CGPoint anchor = viewWithVisibleAnchorPoint.layer.anchorPoint;
CGSize  size   = viewWithVisibleAnchorPoint.layer.bounds.size;

anchorPointLayer.position = CGPointMake(anchor.x * size.width,
                                        anchor.y * size.height);
[viewWithVisibleAnchorPoint.layer addSublayer:anchorPointLayer];

您可以在下图中看到四种不同旋转的结果。

围绕锚点旋转的视图

通过它们的锚点对齐图层

这很酷,但实际上比对齐锚点更容易。

关键技巧是 theposition和 theanchorPoint总是同一个点,只是在两个不同的坐标空间中位置在超层的坐标空间中指定。锚点在层的单位坐标空间中指定。

这样做的好处是属性对齐的视图position将自动anchorPoint对齐。请注意,内容是相对于锚点绘制的。下面是一组视图的示例,它们都具有相同的 y 分量position,因此它们在 y 中对齐。

真的没有任何特殊的代码可以做到这一点。只需确保position属性对齐即可。

多个视图由它们的锚点对齐。

于 2013-07-16T10:19:31.363 回答