Eder Padilla
Eder Padilla

Reputation: 1726

Text() is adding extra leading trailing padding SwiftUI

Hi Im creating this design, with swiftUI but I can't figure out why the Text() is adding more padding to the string value, I just want it to the leading trailing, like margins

Design: enter image description here

Result:

enter image description here

Code:

    struct ProductDetailSwiftUIView: View {
    
        var body: some View {
            ZStack {
                ScrollView {
                    VStack {
                        Rectangle()
                            .frame(height: 213)
                            .foregroundColor(Color.blue)
                            
                        Text("Fresas Congeladas La Huerta 500g")
                            .foregroundColor(.black)
                            .font(Font.bodySemibold(22))
                            .multilineTextAlignment(.leading)
                            .frame(maxWidth: .infinity)
                            .background(Color.red)
                            .padding(.leading, 16)
                            .padding(.trailing, 16)
                    }
                }.toolbar {
                    ToolbarItem(placement: .navigationBarTrailing) {
                        Button {
                            print("Hello world🚀")
                        } label: {
                            Label("Back", image:  "cartLine")
                        }.overlay(Badge(count: 1))
                    }
                }
            }
        }
    }

Upvotes: 2

Views: 3033

Answers (2)

Steven-Carrot
Steven-Carrot

Reputation: 3101

Remove .frame(maxWidth: .infinity) from your Text() to fix this problem.

enter image description here

Upvotes: 0

Asperi
Asperi

Reputation: 258541

At first Text is aligned centered in frame, so

Text("Fresas Congeladas La Huerta 500g")
    .foregroundColor(.black)
    .font(Font.bodySemibold(22))
    .multilineTextAlignment(.leading)
    .frame(maxWidth: .infinity, alignment: .leading)  // << fix 1 !!
    .background(Color.red)
    .padding(.leading, 16)
    .padding(.trailing, 16)

gives:

demo

At second SwiftUI Text does not allow orphan words. See next for details https://stackoverflow.com/a/71698509/12299030

Upvotes: 12

Related Questions