如何将 UILabel 放置在 UIImageView 下方,使其始终均匀放置

Posted

技术标签:

【中文标题】如何将 UILabel 放置在 UIImageView 下方,使其始终均匀放置【英文标题】:How can I place a UILabel below an UIImageView such that it is always evenly placed 【发布时间】:2016-08-29 07:00:25 【问题描述】:

我制作了一个看起来像这样的自定义弹出视图

我想将用户名的标签放在用户图像下方,即给定图像中的圆形UIImageView

我希望用户名放置均匀,而与文本大小无关。 就像我希望名字看起来像这样

【问题讨论】:

显示您尝试过的代码。 【参考方案1】:

    将标签内容居中对齐。

    设置从标签到图像视图的约束。水平居中标签到图像视图。

【讨论】:

我正在以编程方式执行此操作,不使用情节提要,我已将标签的中心 x 设置为与用户图像相同但无法确定框架 将标签的宽度设置为等于self.view 和任何你想要的高度。还将标签文本居中居中。因此,x 轴 = 0,将在这里工作。 可以设置label的x坐标为:codeimageview.x - ((label.width - image.width)/2)code【参考方案2】:

由于您不使用情节提要,下面的代码将帮助您设置标签的框架:-

UILabel *labelName;//This will be your label instance
CGFloat yAxis = 50;//This will be your image view's y axis + image view's height
[labelName setFrame:CGRectMake(0, yAxis, self.view.frame.size.width, self.view.frame.size.height)];
//Set the color/Font other properties of label as desired

[labelName setTextAlignment:NSTextAlignmentCenter];

【讨论】:

【参考方案3】:

设置约束是有效的解决方案。

您可以按照Mr.UB建议的情节提要方式或通过代码方式进行处理。如果您希望通过代码进行,我建议您使用Masonry来设置约束。

您可以这样做:

[your-label mas_makeConstraints:^(MASConstraintMaker *make) 
    make.top.equalTo(imgView.mas_top); //with is an optional semantic filler
    make.mas_centerX.equalTo(imgView.mas_centerX);
];

【讨论】:

以上是关于如何将 UILabel 放置在 UIImageView 下方,使其始终均匀放置的主要内容,如果未能解决你的问题,请参考以下文章

如何布局可以有无限行数的UILabel

如何将 UIButton 与右侧的 UILabel 对齐。喜欢 instagram 的评论

如何更改 UICollectionViewCell 内的 UILabel 的值?

如何以编程方式将 UILabel 和 UiImageView 添加到表视图单元格内的 UIView?

如何在滚动视图中使 UIImage 低于 UILabel 或 UITextView

像素完美UILabel