当前位置:  开发笔记 > IOS > 正文

在UIView中居中标签

如何解决《在UIView中居中标签》经验,为你挑选了2个好方法。

将标签置于中心的最佳方法是UIView什么?如果你做的事情如

UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(view.frame.origin.x / 2, view.frame.origin.y / 2, 50.0, 50.0)];

然后,您将标签的原点设置为视图的中心.最好的选择是使用center属性将视图的中心设置为该点.所以我尝试使用以下代码:

UIView *aView = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
aView.backgroundColor = [UIColor darkGrayColor];
CGRect frame = aView.frame;

UILabel *aLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 125.0f, 30.0f)];
[aLabel setCenter:CGPointMake(frame.origin.x / 2, frame.origin.y / 2)];

这会产生一个标签,它几乎超出了左上角视图的范围.



1> philsquared..:

你做错的主要是取一半的原点值,而不是一半的大小

但是,在这种情况下,您甚至无需计算 - 只需执行以下操作:

UIView *aView = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
aView.backgroundColor = [UIColor darkGrayColor];

UILabel *aLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 125, 30)];
aLabel.center = aView.center;

(注意,你不需要强制这些坐标浮动 - 在这种情况下,将它们写为int可能更具可读性).

此外,这是一个风格的问题 - 但由于你已经在使用属性语法(aView.backgroundColor),你也可以将它用于中心属性:-)



2> Andrew Grant..:

要将任何孩子水平居中放在父母身上,你会像这样计算它的位置;

childX = (parentWidth - childWidth) / 2

(这也适用于身高).


老实说,我不知道,这样的东西只是基本的数学 - 你有一定数量的空间(parentWidth - childWidth),你想在两面分布(/ 2).
推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有