【问题标题】:Dynamic UILabel positions using interface builder?使用界面生成器的动态 UILabel 位置?
【发布时间】:2011-12-02 13:29:17
【问题描述】:

我正在尝试使用多个 UIlabels(可能还有图像)制作动态视图 但是,我在动态定位它们时遇到了麻烦。以下是它应该是什么样子......

日期(UILabel)
标题 (UILabel)
图片 (UIImage)
正文(UILabel)

您可以看到图像的高度和正文的长度可以变化。 如果图片很大,则必须将正文向下推,以免它们相互重叠...

是否可以仅使用 Interface Builder 来完成? 如果没有,我该如何以编程方式做到这一点? - 通过手动计算每个 UI 的高度? 一些示例代码会很棒....谢谢。

【问题讨论】:

  • 哦。基于iphone。忘了说。

标签: objective-c xcode


【解决方案1】:

您目前不能仅在 MacOS 上使用它。您必须在代码中完成。

我正在使用这样的类别:

@interface UILabel (UDSize)

- (void)sizeHeightToFitText;

@end

@implementation UILabel (UDSize)

- (void)sizeHeightToFitText {
    [self setLineBreakMode:UILineBreakModeWordWrap];
    [self setNumberOfLines:0];

    CGSize expectedSize = [[self text] sizeWithFont: self.font
                                  constrainedToSize: CGSizeMake(self.frame.size.width, CGFLOAT_MAX)
                                      lineBreakMode: self.lineBreakMode];

    CGRect newFrame = self.frame;
    newFrame.size.height = expectedSize.height;
    [self setFrame: newFrame];
}

@end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多