美文网首页
SwiftUI-自定义修饰符

SwiftUI-自定义修饰符

作者: rayChow | 来源:发表于2021-07-17 11:29 被阅读0次

SwiftUI为我们提供了内置的修饰符,如一系列的font(),background()和clipShape()。但是,我们也可以创建执行特定操作的自定义修饰符。
例如,我们自定义一个项目中常用的文本,设置其字体大小、字重、颜色、背景色等。创建自定义修饰符需要遵循ViewModifier协议,实现其body方法

定义:
struct Title: ViewModifier {
    func body(content: Content) -> some View {
        content
            .font(.largeTitle)
            .foregroundColor(.white)
            .padding()
            .background(Color.blue)
            .clipShape(RoundedRectangle(cornerRadius: 10))
    }
}

使用:
Text("Hello World")
    .modifier(Title())

为了更便捷的使用,我们可以将实现的自定义修饰符扩展为View的方法,便于调用

extension View {
    func titleStyle() -> some View {
        self.modifier(Title())
    }
}

我们现在可以像这样使用修饰符:
Text("Hello World")
    .titleStyle()

one more thing:自定义修饰符不仅可以应用其他现有修饰符,还可以根据需要创建新的视图结构。请记住的是,修饰符返回新对象而不是修改现有对象,因此我们可以创建一个将视图嵌入堆栈并添加另一个视图的对象。

自定义一个水印修饰符:
struct Watermark: ViewModifier {
    var text: String

    func body(content: Content) -> some View {
        ZStack(alignment: .bottomTrailing) {
            content
            Text(text)
                .font(.caption)
                .foregroundColor(.white)
                .padding(5)
                .background(Color.black)
        }
    }
}

extension View {
    func watermarked(with text: String) -> some View {
        self.modifier(Watermark(text: text))
    }
}

相关文章

  • SwiftUI-自定义修饰符

    SwiftUI为我们提供了内置的修饰符,如一系列的font(),background()和clipShape()。...

  • Mongoose 模式扩展

    一、模式扩展 1、默认值 2、模式修饰符 模式修饰符包含: 预定义模式修饰符 自定义setter修饰符 自定义ge...

  • MongoDB进阶

    模式的扩展 预定义模式修饰符 自定义setter修饰符 (数据保存之前) 自定义getter修饰符 ( 取出数据之...

  • Vue-按键修饰符(默认按键修饰符和自定义按键修饰符)

    1. 默认(系统)按键修饰符 2. 自定义按键修饰符

  • SwiftUI-修饰符的顺序

    1.修饰符的顺序 每当我们将修饰符应用于 SwiftUI 视图时,我们实际上会创建一个应用该修饰的新视图,不只是修...

  • day02-vuejs的自定义指令

    键盘修饰符以及自定义键盘修饰符: 1.通过Vue.config.keyCodes.名称 = 按键值来自定义案件修饰...

  • @property 修饰符

    @property 修饰符 修饰符的作用都是针对系统生成的getter、setter方法,对于自定义getter、...

  • SwiftUI-自定义容器

    SwiftUI也是可以自定义容器的,我们将创建一个名为 GridStack 的新容器,它可以让我们在网格内创建任意...

  • SwiftUI-自定义绑定

    当我们使用一个Picker或者TextField之类的控件时,我们通常使用@State绑定属性。但这只对简单的属性...

  • 按键修饰符和自定义修饰符

    .enter 监听enter键 .键盘码 监听相应按键 自定义键盘修饰符

网友评论

      本文标题:SwiftUI-自定义修饰符

      本文链接:https://www.haomeiwen.com/subject/hjybpltx.html