SwiftUI:文本将被用“…”截断&引用;在我看来

SwiftUI:文本将被用“…”截断&引用;在我看来,swift,layout,swiftui,Swift,Layout,Swiftui,在我看来,我有很多的文字和一个边框,但它有时会被切断,并有“…”在它的结尾。我试过使用.layout.layoutPriority()和.fixedSize(),奇怪的是,根据我使用.layoutPriority()的位置和频率,它不会在同一个位置和每个设备上被切断。 提前感谢你的帮助 这是我目前的代码 import SwiftUI import SafariServices struct WhatIsStopView: View { @State var show4 = false

在我看来,我有很多的文字和一个边框,但它有时会被切断,并有“…”在它的结尾。我试过使用.layout
.layoutPriority()
.fixedSize()
,奇怪的是,根据我使用
.layoutPriority()
的位置和频率,它不会在同一个位置和每个设备上被切断。 提前感谢你的帮助

这是我目前的代码

import SwiftUI
import SafariServices

struct WhatIsStopView: View {

    @State var show4 = false

    var body: some View {
        GeometryReader { geometry in
            ScrollView(.vertical) {
            VStack(alignment: .leading, spacing: 30) {
                HStack(spacing: 15) {
                    Text("whatIsAStop")
                    Image(systemName: "camera")
                }.font(.largeTitle)
                VStack(alignment: .leading, spacing: 45) {
                    VStack(alignment: .leading, spacing: 25) {
                        Text("inPhotographyAStop").layoutPriority(2)

                        Text("stopDoubling").fontWeight(.semibold).layoutPriority(2)

                        Text("forExample").layoutPriority(2)

                        VStack {
                            Image("exposure-stops").resizable()
                                        .aspectRatio(contentMode: .fit)
                            Text("stopIsAMeasure").italic().layoutPriority(2)
                        }

                        Text("amountOfLightCaptured").layoutPriority(2)

                    }

                    VStack(alignment: .leading, spacing: 25) {
                        Text("stopsAndShutterSpeed").font(.headline).layoutPriority(2)

                        Text("shutterSpeedMeasures").layoutPriority(2)

                        VStack {
                            Image("exposure-stops-shutter-speed").resizable()
                                .aspectRatio(contentMode: .fit)
                            Text("commonShutterSpeedStops").italic().layoutPriority(2)
                        }

                        Text("forExampleChanging").layoutPriority(2)

                        Text("mostCamerasAllow").layoutPriority(2)
                    }

                    VStack(alignment: .leading, spacing: 25) {
                        Text("stopsAndISOSpeed").font(.headline).layoutPriority(2)

                        Text("ISOSpeedDescribes").layoutPriority(2)

                        VStack {
                            Image("exposure-stops-iso-speed").resizable()
                            .aspectRatio(contentMode: .fit)
                            Text("commonISOSpeedStops").italic().layoutPriority(2)
                        }

                        Text("ISOIsMeasured").layoutPriority(2)

                        Text("forExampleSwitching").layoutPriority(2)
                    }

                    VStack(alignment: .leading, spacing: 25) {
                        Text("stopsAndAperture").font(.headline).layoutPriority(2)

                        Text("apertureIsMeasured").layoutPriority(2)

                        VStack {
                            Image("exposure-stops-aperture").resizable()
                            .aspectRatio(contentMode: .fit)
                            Text("commonApertureStops").italic().layoutPriority(2)
                        }

                        Text("becauseOfTheWay").layoutPriority(2)

                        Text("asWithShutterSpeed").layoutPriority(2)
                    }

                    VStack(alignment: .leading, spacing: 25) {

                            Text("stopsAreInterchangeable").font(.headline).layoutPriority(2)

                            Text("theGreatThing").layoutPriority(2)

                            Text("letsSay").layoutPriority(2)

                            Text("thisChangeOf").layoutPriority(2)

                            Text("youCouldOpen").layoutPriority(2)

                            Text("alternativelyYouCould").layoutPriority(2)

                            Text("asYouCanSee").layoutPriority(2)
                    }

                    VStack(alignment: .leading, spacing: 25) {

                            Text("conderationsWhenAdjustingExposure").font(.headline).layoutPriority(2)

                            Text("whenAdjustingTheThree").layoutPriority(2)

                            Text("shutterSpeedIf").layoutPriority(2)

                            Text("apertureA").layoutPriority(2)

                            Text("ISOSpeedThe").layoutPriority(2)

                            Text("asWithEverything").layoutPriority(2)

                            Text("exposureStopsAreA").layoutPriority(2)
                    }

                    Divider()

                    HStack {
                        Button(action: {
                            self.show4.toggle()
                        }) {
                            Text("linkToOriginalArticle").padding().foregroundColor(.white)
                                .background(LinearGradient(gradient: .init(colors: [.yellow,.purple]), startPoint: .leading, endPoint: .trailing))
                            .cornerRadius(20)
                                .sheet(isPresented: self.$show4) {
                                    photography().edgesIgnoringSafeArea(.all)
                            }
                        }
                        Spacer()
                        Text("© Photography Mad")
                    }

                    }.padding()
                .overlay(
                    RoundedRectangle(cornerRadius: 16)
                        .stroke((LinearGradient(gradient: .init(colors: [.purple,.blue]), startPoint: .leading, endPoint: .trailing)), lineWidth: 4)
                )
                Spacer()
            }.padding()
                VStack {
                    AdView().frame(width: 320, height: 50)
                }.edgesIgnoringSafeArea([.top, .leading, .trailing])
        }
    }
        .navigationBarTitle(Text("whatIsAStop"), displayMode: .inline)
    }
}

struct WhatIsStopView_Previews: PreviewProvider {
    static var previews: some View {
        WhatIsStopView()
            .environment(\.locale, .init(identifier: "fr"))
    }
}


struct photography : UIViewControllerRepresentable {

    func makeUIViewController(context: UIViewControllerRepresentableContext<photography>) -> SFSafariViewController {
        let controller = SFSafariViewController(url: URL(string: "https://www.photographymad.com/pages/view/what-is-a-stop-of-exposure-in-photography")!)
        return controller
    }
    func updateUIViewController(_ uiViewController: SFSafariViewController, context: UIViewControllerRepresentableContext<photography>) {

    }
}
导入快捷界面
进口狩猎服务
结构WhatIsStopView:视图{
@状态变量show4=false
var body:一些观点{
GeometryReader{中的几何体
滚动视图(.vertical){
VStack(对齐:。前导,间距:30){
HStack(间距:15){
文本(“whatIsAStop”)
图像(系统名称:“摄像头”)
}.font(.largeTitle)
VStack(对齐:。前导,间距:45){
VStack(对齐:。前导,间距:25){
文本(“inPhotographyAStop”)。布局优先级(2)
文本(“停止加倍”).fontWeight(.semibold).layoutPriority(2)
文本(“示例”)。布局优先级(2)
VStack{
图像(“曝光停止”)。可调整大小()
.aspectRatio(内容模式:.fit)
文本(“stopIsAMeasure”).italic().layoutPriority(2)
}
文本(“AmountFlightCaptured”)。布局优先级(2)
}
VStack(对齐:。前导,间距:25){
文本(“stopsAndShutterSpeed”).font(.headline).布局优先级(2)
文本(“速度度量”)。布局优先级(2)
VStack{
图像(“曝光停止快门速度”)。可调整大小()
.aspectRatio(内容模式:.fit)
文本(“commonShutterSpeedStops”).italic().layoutPriority(2)
}
文本(“例如更改”)。布局优先级(2)
文本(“mostCamerasAllow”)。布局优先级(2)
}
VStack(对齐:。前导,间距:25){
文本(“stopsAndISOSpeed”).font(.headline).布局优先级(2)
文本(“ISOSPEED描述”)。布局优先级(2)
VStack{
图像(“曝光停止iso速度”)。可调整大小()
.aspectRatio(内容模式:.fit)
文本(“commonISOSpeedStops”).italic().layoutPriority(2)
}
文本(“ISOIsMeasured”)。布局优先级(2)
文本(“例如切换”)。布局优先级(2)
}
VStack(对齐:。前导,间距:25){
文本(“光圈和光圈”).font(.headline).布局优先级(2)
文本(“孔径测量”)。布局优先级(2)
VStack{
图像(“曝光停止光圈”)。可调整大小()
.aspectRatio(内容模式:.fit)
文本(“commonApertureStops”).italic().layoutPriority(2)
}
文本(“因为是”)。布局优先级(2)
文本(“asWithShutterSpeed”)。布局优先级(2)
}
VStack(对齐:。前导,间距:25){
文本(“StopSareInterChanged”).font(.headline).layoutPriority(2)
文本(“theGreatThing”)。布局优先级(2)
文本(“letsSay”)。布局优先级(2)
文本(“此更改”)。布局优先级(2)
文本(“您可以打开”)。布局优先级(2)
文本(“或者你可以”)。布局优先级(2)
文本(“asYouCanSee”)。布局优先级(2)
}
VStack(对齐:。前导,间距:25){
文本(“调整曝光时的压缩”).font(.headline).布局优先级(2)
文本(“何时调整三个”)。布局优先级(2)
文本(“shutterSpeedIf”)。布局优先级(2)
文本(“光圈A”)。布局优先级(2)
文本(“ISOSpeedThe”)。布局优先级(2)
文本(“asWithEverything”)。布局优先级(2)
文本(“exposureStopsAreA”)。布局优先级(2)
}
分隔器()
HStack{
按钮(操作:{
self.show4.toggle()
}) {
文本(“linkToOriginalArticle”).padding().foregroundColor(.white)
.background(LinearGradient(渐变:.init(颜色:[.yellow,.purple]),起始点:.leading,终点:.training))
.转弯半径(20)
.表(显示:self.$show4){
摄影().边缘识别安全区域(.all)
}
}
垫片()
文本(“摄影狂”)
}
}.padding()
.覆盖(
圆角转角(拐角半径:16)
.stroke((LinearGradient(渐变:.init(颜色:[.purple,.blue]),起始点:.leading,终点:.training)),线宽:4)
)
垫片()
}.padding()
VStack{
AdView().框架(宽度:320,高度:50)
}.edgesIgnoringSafeArea([.top、.leading、,
struct layout: View {

let text: String = "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."

    var body: some View {
        VStack(alignment: .leading, spacing: 25) {
            Text(text)
            Text(text)
            Text(text)
        }
    }
}
Text("\nMy Text").font(.custom("Rockwell-Bold", size: 50))