Ios 用另一个视图包装标签

Ios 用另一个视图包装标签,ios,user-interface,ios-autolayout,Ios,User Interface,Ios Autolayout,我想在一个黑色矩形上创建一个标签,该矩形有圆角,标签边框和矩形边框之间有一些填充。如果文本长度在运行时发生更改,还需要正确包装标签 外观应类似于此视图: 但是内置在我的视野内,而不是浮动 我没有使用iOS界面生成器的经验,如何实现这一点?最简单的方法是 创建一个带有黑色背景色的简单UILabel,并设置其角半径。您可以将此标签放置在任何您想要的位置。您可能只需要一个标签即可 如果不为标签指定特定的宽度,它将根据文本的长度调整自身大小 可以在“特性”选项卡的“视图”部分下的“界面生成器”中更改标

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

外观应类似于此视图:

但是内置在我的视野内,而不是浮动

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

最简单的方法是


创建一个带有黑色背景色的简单UILabel,并设置其角半径。您可以将此标签放置在任何您想要的位置。

您可能只需要一个标签即可

如果不为标签指定特定的宽度,它将根据文本的长度调整自身大小

可以在“特性”选项卡的“视图”部分下的“界面生成器”中更改标签的背景色和不透明度


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

据我所知,您希望显示一个弹出窗口,以显示一些动态文本,只需传递文本即可在任何地方显示

您需要做的是创建一个自定义视图,其中包含一个带有顶部、底部、前导和尾随约束的标签,其大小将根据文本而增加。使用参数
descriptionontext:NSString
onViewController:UIViewController
创建一个类方法。在其中,根据文本设置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;
}
在类方法中,将customView添加到currentViewController中,如下所示:

onViewController.view.addSubView(self)

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

如何处理填充?什么填充?在创建标签但不在视图中包装标签时,无需担心填充。标签将根据其内容展开,黑色背景也将如此。当我创建标签并更改其背景时,边框与文本太接近,可以为标签文本添加填充。这些称为插入。您可以给出(10,10,10,10),这样文本和边框之间就有10分的间隙。