孩子不尊重父母的大小SwiftUI

时间:2020-07-19 14:43:54

标签: html ios swift swiftui nsattributedstring

我们目前正在使用SwiftUI的Twitter式客户端,并且必须将HTML内容转换为defaults to。因此,我们使用Atributika来设置HTML标签的样式。它似乎工作正常,但是当我们尝试显示内容时,文本只会覆盖其他内容。我们认为这是因为它不尊重其父代的大小,但可能还有其他原因。

our problem our problem

我们将如何解决?有没有更好的方法可以在SwiftUI中呈现HTML内容,而无需使用WKWebViews,因为那样会导致性能下降?

我们缺少什么吗?

谢谢。

我们的代码

NetworkView.swift

"""[Summary]

:param [ParamName]: [ParamDescription], defaults to [DefaultParamVal]
:type [ParamName]: [ParamType](, optional)
...
:raises [ErrorType]: [ErrorDescription]
...
:return: [ReturnDescription]
:rtype: [ReturnType]
"""

StatusView.swift

NSAttributedString

AttributedTextView.swift

struct NetworkView: View {

    @ObservedObject var timeline = NetworkViewModel()

    private let size: CGFloat = 300
    private let padding: CGFloat = 10
    private let displayPublic: Bool = true

    var body: some View {

        List {
            Section {
                NavigationLink(destination: Text("F").padding()) {
                    Label("Announcements", systemImage: "megaphone")
                }
                NavigationLink(destination: Text("F").padding()) {
                    Label("Activity", systemImage: "flame")
                }
            }
            .listStyle(InsetGroupedListStyle())

            Section(header:
                Picker(selection: self.$timeline.type, label: Text("Network visibility")) {
                    Text("My community").tag(TimelineScope.local)
                    Text("Public").tag(TimelineScope.public)
                }                        .pickerStyle(SegmentedPickerStyle())
                    .padding(.top)
                    .padding(.bottom, 2)) {

                if self.timeline.statuses.isEmpty {

                    HStack {

                        Spacer()

                        VStack {

                            Spacer()

                            ProgressView(value: 0.5)
                                .progressViewStyle(CircularProgressViewStyle())

                            Text("Loading posts...")

                            Spacer()

                        }

                        Spacer()

                    }

                } else {

                    ForEach(self.timeline.statuses, id: \.self.id) { status in
                        StatusView(status: status)
                            .buttonStyle(PlainButtonStyle())
                    }

                }
            }

        }
            .listStyle(GroupedListStyle())

    }
}

0 个答案:

没有答案