我正在尝试水平对齐我的UILable for iPhone 屏幕,因为没有x
或left
在 mylable 属性中。如何在屏幕上居中对齐?
3 回答
确定对象具有哪些类型的属性的最佳方法是使用类引用。当您第一次查看UILabel 类参考时,您会发现没有用于调整标签视图的属性。
但是,如果您查看最顶部,您可以看到 UILabel 从哪里继承。您可以看到它继承自 UIView,这对于查看您需要的内容很有意义,因为您询问如何调整屏幕(视图)上的标签位置。
单击 UIView,您将被直接带到它的参考。向下滚动,直到您看到“任务”列表,其中有几个类别,每个类别都有许多属性。您对“边界和框架矩形”类别感兴趣,其中有一个名为“框架”的属性。
现在我们已经确定我们可以通过 myLabel.view.frame 设置 UILabels 框架
但是您可能想知道如何设置框架,因此您需要在您一直在查看的类参考中单击“框架”。
您将看到该框架的类型为 CGRect,因此您可以使用 CGRectMake 来设置框架。但现在你问我该怎么做,所以我们点击CGRect 参考。
您可以看到 CGRect 是一个由 CGPoint 和 CGSize 组成的结构,如有必要,请查看它们以了解它们是如何定义的。
我花时间解释了使用文档的流程,以便您将来可以自己做。您可以在他人的帮助下生存一段时间,但最终您需要深入研究文档并自己弄清楚。
简而言之,您可以使用以下方法设置标签的位置:
myLabel.frame = CGRectMake(self.view.frame.size.width/2-someWidth/2, self.view.frame.size.height/2-someHeight/2, someWidth, someHeight);
其中 someWidth 和 someHeight 是浮点类型的自定义变量,而 self.view 是您希望将标签居中的一些超级视图。
我没有测试代码,但相信这应该可行。祝你好运。
您要查找的属性是frame
orcenter
属性。在这种情况下,center
可能是您最好的选择。您需要做的就是这样的:
CGPoint newCenter = myLabel.center;
newCenter.x = self.view.center.x;
myLabel.center = newCenter;
或者
myLabel.center = CGPointMake ( self.view.center.x, myLabel.center.y );
有更高级的方法可以使用自动布局或自动调整掩码来保持中心对齐。如果您有兴趣了解它们(自动布局是最强大的并且在某些方面对用户友好),我建议您观看有关自动布局的WWDC 2012 会议
这有效:
mylabel.center = CGPointMake(CGRectGetMidX(self.view.bounds), mylabel.center.y);