SwiftUI - 适合多行文本宽度的内联样式文本背景颜色 SwiftUI

Posted

技术标签:

【中文标题】SwiftUI - 适合多行文本宽度的内联样式文本背景颜色 SwiftUI【英文标题】:SwiftUI - inline style text background color that fits to the width of multi line text SwiftUI 【发布时间】:2020-07-29 17:30:59 【问题描述】:

我正在尝试创建一种背景文本颜色,以跟踪多行文本每行的宽度。见下图:

我只能使用 .background(Color.black) 获得基本的框背景颜色 它为整个文本框提供了背景。期望的效果是只在每行文本的末尾提供背景。

【问题讨论】:

这能回答你的问题吗? SwiftUI Multiline Text Background Color 【参考方案1】:

我只知道如何在 php/CSS 中解决这个问题。 首先,将文本放入变量中。 然后通过 div 标签替换所有空格。然后为 div 添加 CSS。就是这样:

!重要!确保开头和中间没有空格,文本中间没有输入空格

这是我的代码示例:

<style>
    .divs
        background-color: black;
        color: white;
        margin: 5px 0px 5px 0px;/* space from top and bottom*/
        padding-left: 5px;/* word spacing */
        float: left;/* Importand to stick them together */
        font-size: 20pt;
    
</style>
<div>
<?php
  $yourtext = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.';
  echo "<div class='divs'>".str_replace(" ", "</div> <div class='divs'>", $yourtext)."</div>";
?>
</div>

但我确信 SwiftUI 可以使用相同的方法,只需循环文本并替换空格

--> 只需在 SwiftUI 中搜索文本替换即可找到所需的内容

【讨论】:

以上是关于SwiftUI - 适合多行文本宽度的内联样式文本背景颜色 SwiftUI的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI:如何使 TextField 适合多行内容?

SwiftUI:如何使 TextField 适合多行内容?

SwiftUI 多行文本背景颜色

UILabel 多行文本缩放字体以适应 \n

SwiftUI:如何将视图附加到多行文本的结尾?

内联表单中的引导全角文本输入