SwiftUI iOS 超酷组件之支持文本分割炸裂徽标效果 正则 ViewModifier(教程含源码)

实战需求

SwiftUI iOS 超酷组件之支持文本分割炸裂徽标效果(教程含源码)

本文价值与收获

看完本文后,您将能够作出下面的界面

SwiftUI iOS 超酷组件之支持文本分割炸裂徽标效果 正则 ViewModifier(教程含源码)_第1张图片
截屏2021-02-26 下午12.12.59.png

看完本文您将掌握的技能

若要分隔文本,组件需要两个重要的信息。一个是要爆炸的文本,另一个是定界符,用于定义应应用哪个规则进行爆炸。提供了五种不同的定界符:

  • .all
  • .character
("Hello World!", delimiter: .character)
  • .word (default if no specific delimiter is provided)
("Hello World!")
  • .sentence
  • custom(regex: String)
("Hello World!", delimiter: .custom(regex: "(l)"))
  • 分割修饰符
("Hello World!").segmentModifier(...)
  • ViewModifier基础使用
func segmenModifier(_ modifier: M) -> some View 

基础知识

ViewModifier

应用于视图的修改器或另一个视图修改器,生成原始值的不同版本。

protocol ViewModifier

参考代码

struct PressActions: ViewModifier {
    var onPress: () -> Void
    var onRelease: () -> Void
    
    func body(content: Content) -> some View {
        content
            .simultaneousGesture(
                DragGesture(minimumDistance: 0)
                    .onChanged({ _ in
                        onPress()
                    })
                    .onEnded({ _ in
                        onRelease()
                    })
            )
    }
}


extension View {
    func pressAction(onPress: @escaping (() -> Void), onRelease: @escaping (() -> Void)) -> some View {
        modifier(PressActions(onPress: {
            onPress()
        }, onRelease: {
            onRelease()
        }))
    }
}

实战代码

你可能感兴趣的:(SwiftUI iOS 超酷组件之支持文本分割炸裂徽标效果 正则 ViewModifier(教程含源码))