SwiftUI iOS 超酷组件之支持文本分割炸裂徽标效果 正则

2021-02-26  本文已影响0人  iCloudEnd

实战需求

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

本文价值与收获

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

截屏2021-02-26 下午12.12.59.png

看完本文您将掌握的技能

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

("Hello World!", delimiter: .character)
("Hello World!")
("Hello World!", delimiter: .custom(regex: "(l)"))
("Hello World!").segmentModifier(...)
func segmenModifier<M: ViewModifier>(_ 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()
        }))
    }
}

实战代码

上一篇 下一篇

猜你喜欢

热点阅读