如何将字符串声明为带有swift的段落?

时间:2016-07-17 22:18:34

标签: swift string

我想通过 swift 声明带有p段的字符串,如下所示,但不对,有人可以帮我一个忙吗?

我不想用一行声明字符串,这不容易阅读

let format = "<p><strong>%@ paddock selected</strong></p>
                        <p>Total Area %.1f ha</p>
                        <p>Effective Area %.1f ha</p>
                        <p></p>
                        <p><strong>%@</strong></p>
                        <p>Total Area %.1f ha</p>
                        <p>Effective Area %.1f ha</p>"

我不想要像下面这样的事情,我必须在领先和"添加" +并跟踪:(

let format = "<style>" +
                        "p {" +
                        "    margin: 1 1 1 1;" +
                        "}" +
                        "</style>" +
                        "<body>" +
                        "<p><strong>%@ paddock selected</strong></p>" +
                        "<p>Total Area %.1f ha</p>" +
                        "<p>Effective Area %.1f ha</p>" +
                        "<p></p>" +
                        "<p><strong>%@</strong></p>" +
                        "<p>Total Area %.1f ha</p>" +
                        "<p>Effective Area %.1f ha</p>" +
                        "</body>"

使用objective-c,我只需要添加\每行都可以,但不是很快

NSString* format = @"<p><strong>%@ paddock selected</strong></p>\
                        <p>Total Area %.1f ha</p>\
                        <p>Effective Area %.1f ha</p>\
                        <p></p>\
                        <p><strong>%@</strong></p>\
                        <p>Total Area %.1f ha</p>\
                        <p>Effective Area %.1f ha</p>";

2 个答案:

答案 0 :(得分:3)

斯威夫特缺乏此功能。它既没有字符串文字的自动循环,也没有这里的文档。如果对您很重要,请提交错误报告。

我所做的是将大字符串(包括格式字符串)作为应用程序包中的文本文件加载。

答案 1 :(得分:2)

您可以将多行格式用于Localizable.strings(这也是编写字符串的正确位置)。

enter image description here

  

请注意,此方法实际上会在每行末尾添加换行符说明!但是,由于您正在编写HTML,因此这不应该是您的问题。

更多

这与您的问题没有直接关系,但您也可以找到有用的String扩展名

extension String {
    var localized: String {
        return NSLocalizedString(self, comment: "")
    }
}

因为它允许您只需编写

即可检索字符串的本地化版本
"Test".localized