I have a simple code that I used three times Text with identical parameters but with different Text. How to avoid code duplication? I used SwiftUI and Xcode 13.4
Text(status)
.fontWeight(.bold)
.foregroundColor(Color.white)
.padding(.leading, 5)
.padding(.trailing, 5)
.background(stats)
.cornerRadius(3)
CodePudding user response:
You can simply DRY it by converting it to a function:
@ViewBuilder func styledText(_ text: LocalizedStringKey) -> some View {
Text(text)
.fontWeight(.bold)
.foregroundColor(Color.white)
.padding(.leading, 5)
.padding(.trailing, 5)
.background(stats)
.cornerRadius(3)
}
Then use it like:
styledText(status)
CodePudding user response:
You can create a custom ViewModifier for your Text.
struct CustomTextStyle: ViewModifier {
func body(content: Content) -> some View {
content
.fontWeight(.bold)
.foregroundColor(Color.white)
.padding(.leading, 5)
.padding(.trailing, 5)
.background(.black)
.cornerRadius(3)
}
}
You can create an extension of View like this to use the above ViewModifier.
extension View {
func customTextStyle() -> some View {
modifier(CustomTextStyle())
}
}
Now set this ViewModifier to your Text.
Text("Hello World")
.customTextStyle()
