我可以通过拉伸 UILabel 的角来更改 IOS 模拟器中 UILabel 运行时的框架吗?

Can I change the frame of UILabel runtime in IOS simulator by stretching the corner of UILabel?

我想为用户提供在模拟器中更改标签框架并根据文本要求调整标签框架。

下面是图像,我可以在 IOS 模拟器中制作相同的视图以允许用户更改标签框架吗?

仅用于标签,我想显示可编辑的框架

如果有人知道如何做这件事,或者是否有可能在 IOS 中实现这种类型的功能? 让我知道!

谢谢

要根据文本长度更改 UILabel 的大小,您可以使用此代码

CGSize maximumLabelSize = CGSizeMake(296, FLT_MAX);

CGSize expectedLabelSize = [yourString sizeWithFont:yourLabel.font constrainedToSize:maximumLabelSize lineBreakMode:yourLabel.lineBreakMode];   


CGRect newFrame = yourLabel.frame;
newFrame.size.height = expectedLabelSize.height;
yourLabel.frame = newFrame;

希望对您有所帮助,谢谢。

UILabel 根据文本长度.. 只尝试两行。它会根据文本自动调整您的最大宽度和自动更改高度。

yourLabel.numberOfLines = 0;
[yourLabel sizeToFit];

这里有一个非常好的 class 可以使这项任务变得更加容易。 IQLabelView is a Github project 您需要使用

导入 IQLabelView 并添加如下标签

    IQLabelView *labelView = [[IQLabelView alloc] initWithFrame:labelFrame];
    labelView.delegate = self;
    [labelView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth)];
    [labelView setShowContentShadow:NO];
    [labelView setTextField:aLabel];
    [labelView setFontName:@"Baskerville-BoldItalic"];
    [labelView setFontSize:21.0];
    [labelView sizeToFit];
    [self.view addSubview:labelView];