uilabel 文本更改后移动 uiview

Posted

技术标签:

【中文标题】uilabel 文本更改后移动 uiview【英文标题】:Move uiview once uilabel text has changed 【发布时间】:2014-07-22 13:25:27 【问题描述】:

我有一个 UIlabel,当用户单击按钮时,其文本会发生变化,然后使用以下方法调整该标签的大小:

CGRect frame = label.frame;
    [label sizeToFit];
    frame.size.height = label.frame.size.height;
    label.frame = frame;

这样宽度保持不变,但标签的高度发生了变化,所以所有文本都适合这个。

然后我需要将此标签下方的 uiview 向下移动,以便它从标签底部开始,我该怎么做?

【问题讨论】:

你在使用自动布局吗?你能不能在标签调整大小的同时或立即改变框架或约束并调整框架的位置? 【参考方案1】:

最终解决了:

    CGRect contentframe = _lbl_content.frame; //the uilabel
    CGRect keyframe = _view_keystuff.frame; //the uiview
    float startlocation = contentframe.origin.y;
    startlocation += contentframe.size.height;
    keyframe.origin.y = startlocation;
    _view_keystuff.frame = keyframe;

【讨论】:

【参考方案2】:

你只想把 UIView 放在标签下面?

试试这个:

UIView *viewBelowLabel = [[UIView alloc] init];

viewBelowLabel.frame = CGRectMake( "your view origin x", label.frame.origin.y + label.frame.size.height, "your view size width", "your view size height");

你应该在调整标签大小后调整 UIView 框架

【讨论】:

以上是关于uilabel 文本更改后移动 uiview的主要内容,如果未能解决你的问题,请参考以下文章

如何根据宽度有限的文本更改 UILabel 大小

ScrollView中的UILabel sizeToFit

当 UITableView 加载并在滚动后得到修复时,UILabel 向左移动

在 UISlider 的缩略图上不断更改 UILabel 的值

快速检测 UILabel 文本更改

无法更改 UILabel 文本颜色