gpt4 book ai didi

ios - 使 UILabel 看起来像 CSS 显示 : inline

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:25 27 4
gpt4 key购买 nike

好的,这是我的问题。我有一组相当大的 UIButtons,它们将 UIImage 设置为背景。现在我想在这些按钮内添加标签。但我目前正在实现的设计使用了“花式”标签,其中标签的背景颜色是半透明的,并折叠在文本周围。

我的第一个想法是使用 UIWebview 来实现它并且它有效,但是添加大量 UIWebview 需要很长时间才能显示标签。

下一个解决方案是使用 UILabel,性能会好几倍。但是对于我来说,我无法弄清楚如何使视觉风格与设计相匹配。

所以基本上我想让 UILabel 表现得像一个 HTML 元素,它具有 CSS 规则 display: inline;风格定义。

这甚至可以通过 UILabel 的内置参数实现吗?如果没有,我可能会使用 UIWebView 解决方案,但使用 UILabel 的解决方案当然会更漂亮。

这是一张截图,可以更好地解释它

顶部是默认 UILabel 的行为方式,底部是我希望它的行为方式。

最佳答案

您还没有完全描述您的文本所具有的样式,但在我看来您想要一种“发光”效果。这可以使用 QuartzCore 在标签上产生阴影效果来完成。请注意,单个阴影通常不会这样做,所以这里有一个包含四个标签和四个阴影的示例:

for (int i = 0; i < 4; i++) {
UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 280, 30)];
[label setBackgroundColor:[UIColor clearColor]];
[label setTextColor:[UIColor colorWithRed:1 green:1 blue:1 alpha:1]];
[label setText:@"This is some glowing text"];
[[label layer] setShadowColor:[[UIColor colorWithRed:1 green:1 blue:1 alpha:1] CGColor]];
CGSize shadowOff = CGSizeMake(0, 0);
if (i == 0) shadowOff = CGSizeMake(3, 3);
else if (i == 1) shadowOff = CGSizeMake(3, -3);
else if (i == 2) shadowOff = CGSizeMake(-3, -3);
else if (i == 3) shadowOff = CGSizeMake(-3, 3);
[[label layer] setShadowOffset:shadowOff];
[[label layer] setShadowOpacity:0.5];
[[label layer] setShadowRadius:3];
[[label layer] setMasksToBounds:NO];
[self.view addSubview:[label autorelease]];
}

显然,可以针对不同级别的“发光”修改阴影不透明度、半径等。

关于ios - 使 UILabel 看起来像 CSS 显示 : inline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7135062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com