用另一个视图包裹标签 IOS

Wrap a label with another view IOS

我想在一个带有圆角的黑色矩形上创建一个标签,标签的边框和矩形的边框之间有一些填充。如果文本长度在运行时发生变化,还需要正确包装标签。

外观应该是这样的:

但内置在我的视图中而不是浮动。

我没有使用 iOS 界面生成器的经验,我该如何实现?

最简单的方法是

创建一个简单的黑色背景的 UILabel 并设置它的角 radius.You 可以将这个标签放在任何你想要的地方。

你可能只需要一个标签就可以逃脱。

如果您没有为标签分配特定宽度,它会根据文本的长度自行调整大小。

您可以在 Interface Builder 的“属性”选项卡的“视图”部分下更改标签的背景颜色和不透明度。

圆角需要在代码中完成,方法是更改​​标签 CALayer (label.layer.cornerRadius) 的圆角半径。您可以通过在 Interface Builder 中添加用户定义的运行时属性来更改边角,但我还没有尝试过,所以我不能断言。

据我所知,您想显示一个弹出窗口来显示一些动态文本,只需传递文本即可显示在任何您想要的位置。

您需要做的是创建一个自定义视图,其中包含一个带有顶部、底部、前导和尾随约束的标签,其大小会根据文本增加。使用参数 descriptionText:NSStringonViewController:UIViewController 创建一个 class 方法。在里面根据文本设置你的customView的框架。

如果你想让大小动态化,你可以使用下面的代码:-

-(CGSize)getLabelSizeFortext:(NSString *)text forWidth:(float)width WithFont:(UIFont *)font
{
    CGSize constraint = CGSizeMake(width, MAXFLOAT);
    CGRect titleRect = [text boundingRectWithSize:constraint options:(NSStringDrawingUsesLineFragmentOrigin| NSStringDrawingTruncatesLastVisibleLine) attributes:@{NSFontAttributeName:font} context:nil];
    return titleRect.size;
}

在您的 class 方法中将您的 customView 添加到您的 currentViewController as

onViewController.view.addSubView(self)

如果需要,您可以设置动画并让它在几秒钟后消失,以便用户能够阅读文本。就外观而言,将 backgroundColor 设置为 [UIColor blackColor] 并将 alpha 设置为 8.0.