0

您会注意到所附屏幕截图中的红色“+”/“箭头”字形。在 Xcode 中更改这个“原点”很容易。有没有办法以编程方式执行操作,或者这完全是 Xcode 抽象?

在此处输入图像描述

例如,我想以编程方式创建一个 UILabel 并通过计算右下角坐标来定位它。在 Xcode 中,我只需确保红色的“+”位于右下角的网格点上,并在定义 X、Y、Width 和 Height 参数时牢记该“原点”。

4

2 回答 2

11

如果您不使用自动布局,则可以通过设置标签(或任何视图)的中心在代码中定位标签(或任何视图)。所以如果你知道你想要标签的右下角在哪里,你可以减去标签的宽度和高度的一半来计算它的中心应该在哪里:

CGPoint lowerRight = somePoint;
CGRect frame = label.frame;
label.center = CGPointMake(lowerRight.x - frame.size.width / 2,
    lowerRight.y - frame.size.height / 2);

我会建议这样做。

但如果你愿意,你可以改为去一个较低的层次。每个视图都有一个核心动画层,它实际上管理视图的屏幕外观。图层有一个anchorPoint属性,默认为 (0.5, 0.5),表示图层的中心。您可以将anchorPoint右下角的设置为 (1, 1):

label.layer.anchorPoint = CGPointMake(1, 1);

现在标签center实际上控制了它的右下角的位置,所以你可以直接设置它:

label.center = somePoint; // actually sets the lower right corner

您需要将QuartzCore框架添加到目标并导入<QuartzCore/QuartzCore.h>以修改anchorPoint属性。

于 2012-11-03T05:31:31.127 回答
0
myObject.origin = CGPointMake (0.0,0.0);
于 2012-11-03T05:07:18.247 回答