相关疑难解决方法(0)

在iOS中将HTML转换为NSAttributedString

我正在使用一个实例UIWebView来处理一些文本并正确地着色它,它将结果作为HTML而不是显示在UIWebView我希望Core Text用a 显示它NSAttributedString.

我能够创建和绘制NSAttributedString但我不确定如何将HTML转换并将HTML映射到属性字符串.

据我所知,在Mac OS X下NSAttributedString有一个initWithHTML:方法,但这只是Mac的补充,不适用于iOS.

我也知道有一个类似的问题,但它没有答案,我虽然我会再试一次,看看是否有人创造了一种方法来做到这一点,如果是的话,他们是否可以分享它.

iphone cocoa-touch objective-c nsattributedstring core-text

143
推荐指数
8
解决办法
10万
查看次数

如何在 SwiftUI 中使用属性字符串

如何在 SwiftUI 中使用 AttributedString。没有可用于在文本中使用 AttributedString 的 API

swift swiftui

22
推荐指数
5
解决办法
1万
查看次数

WKWebView中的字体看起来比UIWebView中的字体小

我将UIWebView更改为WKWebView,但是,使用相同的html,WKWebView中的字体看起来比UIWebView中的字体要小.我不希望这种情况发生,所以有什么方法可以避免这种变化吗?

html objective-c uiwebview swift wkwebview

18
推荐指数
3
解决办法
5809
查看次数

如何在 SwiftUI 中使用超链接实现文本

在斯威夫特,如图所示在这里,你可以使用“NSMutableAttributedString”在文本中嵌入的链接。

如何使用 SwiftUI 实现这一目标?

我按如下方式实现了它,但这看起来不像我想要的。 这个.

import SwiftUI

struct ContentView: View {
    var body: some View {
        HStack {
            Text("By tapping Done, you agree to the ")
            Button(action: {}) {
                Text("privacy policy")
            }
            Text(" and ")
            Button(action: {}) {
                Text("terms of service")
            }
            Text(" .")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

swiftui

18
推荐指数
6
解决办法
9401
查看次数

SwiftUI Text Markdown 动态字符串不起作用

我想动态传送内容并显示超链接,但它不能动态传送并且不能工作

\n
let linkTitle = "Apple Link"\nlet linkURL = "http://www.apple.com"\nlet string = "[Apple Link](http://www.apple.com)"\n            \nText(string)        // Not working\n\nText("[Apple Link](http://www.apple.com)")  // Working\n            \nText("[\\(linkTitle)](http://www.apple.com)")    // Working\n            \nText("[\\(linkTitle)](\\(linkURL))")  // Not working\n            \n
Run Code Online (Sandbox Code Playgroud)\n

text swiftui

18
推荐指数
3
解决办法
5286
查看次数

如何在没有固定宽度的情况下让文本包裹在 UILabel(通过 UIViewRepresentable)中?

将 lineBreakMode 设置为 byWordWrapping 并将 numberOfLines 设置为 0 似乎还不够:

struct MyTextView: UIViewRepresentable {
    func makeUIView(context: Context) -> UILabel {
        let label = UILabel()
        label.lineBreakMode = .byWordWrapping
        label.numberOfLines = 0
        label.text = "Here's a lot of text for you to display. It won't fit on the screen."
        return label
    }

    func updateUIView(_ view: UILabel, context: Context) {
    }
}

struct MyTextView_Previews: PreviewProvider {
    static var previews: some View {
        MyTextView()
            .previewLayout(.fixed(width: 300, height: 200))
    }
}
Run Code Online (Sandbox Code Playgroud)

无论我对 lineBreakMode 使用哪种设置,文本都不会换行。画布预览和实时预览都如下所示:

文本未换行的屏幕截图

我得到的最接近的是设置 preferredMaxLayoutWidth,这确实会导致文本换行,但似乎没有一个值表示“无论视图大小如何”。

uilabel swift swiftui

14
推荐指数
2
解决办法
4658
查看次数

iOS 15 beta 4:带有 Markdown 的 AttributedString 未在 SwiftUI 中的文本中呈现?

我认为这是 iOS 15 beta 1 或 2 的错误,但从 beta 4 开始我仍然看到这种行为,所以也许我做错了什么:文本应该用 Markdown 渲染 AttributedStrings。当直接字符串文字传递到文本中时,它似乎可以正确呈现,但当 AttributedString 是变量时,则无法正确呈现。我在做一些超级愚蠢的事情吗?

struct ContentView: View {
    var text = AttributedString("**Hello**, `world`! Visit our [website](https://www.capitalone.com).")

    var body: some View {
        VStack {
            Text("**Hello**, `world`! Visit our [website](https://www.capitalone.com).")
                .padding()

            Text(text)
                .padding()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

swiftui ios15

4
推荐指数
1
解决办法
1336
查看次数

通过 UIViewRepresentable 在 SwiftUI 中调整 UILabel 的大小,如 Text 以包裹多行

目标是获得一个UILabel集成通孔UIViewRepresentable以相同的方式调整大小Text- 使用可用宽度并换行到多行以适应所有文本,从而增加HStack其所在的高度,而不是无限扩展宽度。这是非常相似的这个问题,但接受的答案不适合我使用涉及的布局工作ScrollViewVStackHStack

struct ContentView: View {
    var body: some View {
        ScrollView {
            VStack {
                HStack {
                    Text("Hello, World")
                    
                    Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla tempor justo quam, quis suscipit leo sollicitudin vel.")
                    
                    //LabelView(text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla tempor justo quam, quis suscipit leo sollicitudin vel.")
                }
                HStack {
                    Text("Hello, World")
                    
                    Text("Lorem ipsum dolor sit amet, …
Run Code Online (Sandbox Code Playgroud)

uilabel ios swiftui uiviewrepresentable

3
推荐指数
2
解决办法
2688
查看次数

如何在 SwiftUI 中渲染 HTML 字符串?

我需要在我的 swiftui 应用程序中渲染 html 字符串。

我发现这个: How to show HTML or Markdown in a SwiftUI Text?

但我尝试了那里的每一个解决方案,但我得到的是空白屏幕!

这是我的代码:

import SwiftUI
import WebKit


struct HTMLStringView: UIViewRepresentable {
    let htmlContent: String

    func makeUIView(context: Context) -> WKWebView {
        return WKWebView()
    }

    func updateUIView(_ uiView: WKWebView, context: Context) {
        uiView.loadHTMLString(htmlContent, baseURL: nil)
    }
}


struct audioInfoView: View {
    
    let longDetails: String

    
    var body : some View{
        
        ScrollView{
            
            ZStack{
                
                HTMLStringView(htmlContent: "<p>\(longDetails)</p>")
                
                //Text(longDetails)
             
                
            }.padding()
        }.padding(.top,50)
        
    }
}
Run Code Online (Sandbox Code Playgroud)

let longDetails: String是一个带有 html 标签的字符串,它是从另一个视图传递的。

如果我这样做Text(longDetails) …

swift swiftui

2
推荐指数
1
解决办法
3756
查看次数