import SwiftUI
struct ContentView: View {
var body: some View {
VStack(spacing: 10) {
Text("Hello").modifier(CapsuleText())
Text("World").titleStyle()
Color.blue.frame(width: 300, height: 300).watermarked(text: "Hacking with Swift")
}
}
}
struct CapsuleText:ViewModifier {
func body(content: Content) -> some View {
content.font(.largeTitle).padding().foregroundColor(.white).background(Color.blue).clipShape(RoundedRectangle(cornerRadius: 10))
}
}
extension View{
func titleStyle() -> some View {
modifier(CapsuleText())
}
}
//-------------------------
struct Watermark:ViewModifier {
var text: String
func body(content: Content) -> some View {
ZStack(alignment: .bottomTrailing) {
content
Text(text).font(.caption).padding(5).foregroundColor(.white).background(Color.black).clipShape(RoundedRectangle(cornerRadius: 10))
}
}
}
extension View {
func watermarked(text: String) -> some View {
modifier(Watermark(text: text))
}
}
from:SwiftUI 知识碎片