如何处理未知的 UILabel 高度及其对 Interface Builder 中标签下方的影响?
Posted
技术标签:
【中文标题】如何处理未知的 UILabel 高度及其对 Interface Builder 中标签下方的影响?【英文标题】:How to handle unknown UILabel height and its effect on labels underneath in Interface Builder? 【发布时间】:2010-12-14 20:26:32 【问题描述】:我在一个 XIB 文件中有两个 UILabel,一个在另一个之上,其内容是从网络上的 JSON 源文件加载的。
鉴于我不确定标签将占用的行数以及高度,我应该如何最好地将它们相对于彼此定位。
我知道在一些 Java GUI 框架中,可以使用各种容器元素,而在 html 中,这种布局流程将是默认设置,但我找不到任何似乎可以解决问题的方法。
我可以在 Interface Builder 中执行此操作,还是必须以编程方式执行此操作?
感谢您的帮助..
编辑:
我现在有了答案,尽管它可能并不完美。我有两个标签,titleLabel 上面 descLabel。这就是我实现它的方式:
titleLabel.text = [data objectForKey:@"title"];
descLabel.text = [data objectForKey:@"description"];
CGSize s;
s.width = descLabel.frame.size.width;
s.height = 10000;
titleLabel.frame = CGRectMake(titleLabel.frame.origin.x,
titleLabel.frame.origin.y,
titleLabel.frame.size.width,
[[data objectForKey:@"title"] sizeWithFont:titleLabel.font constrainedToSize: s lineBreakMode:titleLabel.lineBreakMode].height
);
descLabel.frame = CGRectMake(descLabel.frame.origin.x,
titleLabel.frame.origin.y + [[data objectForKey:@"title"] sizeWithFont:titleLabel.font constrainedToSize: s lineBreakMode:titleLabel.lineBreakMode].height + 10,
descLabel.frame.size.width,
[[data objectForKey:@"description"] sizeWithFont:descLabel.font constrainedToSize: s lineBreakMode:descLabel.lineBreakMode].height
);
呸呸呸
【问题讨论】:
【参考方案1】:您必须以编程方式执行此操作。 NSString 方法 -sizeWithFont:constrainedToSize:lineBreakMode:
(实际上在 a UIKit
category 中)将对此特别有用。
【讨论】:
好的。希望我不必那样做。谢谢以上是关于如何处理未知的 UILabel 高度及其对 Interface Builder 中标签下方的影响?的主要内容,如果未能解决你的问题,请参考以下文章
Apache,如何处理未知的 php 文件,如标准 URL?