是否有一种简单的方法可以在UIImageView的锚点上放置标记(例如十字形)?我试图通过他们的锚点排列几个旋转图像,并且能够看到这些点将使工作变得更容易。
非常感谢。
答案 0 :(得分: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];
您可以在下面的图像中看到四种不同旋转的结果。
这很酷,但实际上比对齐锚点更容易。
关键技巧是position
和anchorPoint
始终相同的点,仅在两个不同的坐标空间中。位置在超级图层的坐标空间中指定。锚点在图层的单位坐标空间中指定。
关于这一点的好处是,position
属性对齐的视图会自动将anchorPoint
对齐。请注意,内容是相对于锚点绘制的。下面是一组视图的示例,这些视图都具有与position
相同的y分量,因此它们在y中对齐。
没有任何特殊代码可以执行此操作。只需确保position
属性已对齐。