SwiftUI iOS 超酷组件之支持文本分割炸裂徽标效果 正则
2021-02-26 本文已影响0人
iCloudEnd
实战需求
SwiftUI iOS 超酷组件之支持文本分割炸裂徽标效果(教程含源码)
本文价值与收获
看完本文后,您将能够作出下面的界面
截屏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<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()
}))
}
}