美文网首页
WidgetKit记录

WidgetKit记录

作者: CodingTom | 来源:发表于2021-05-07 17:54 被阅读0次

    官方文档地址:https://developer.apple.com/documentation/WidgetKit

    可以用的组件列表:https://developer.apple.com/documentation/widgetkit/swiftui-views

    理解Timeline 刷新的时机

    atEnd

    这个就是在 TimelineProvider 提供的所有 entry 显示完毕之后自动刷新,
    也就是说只要还有没有显示的 entry 在就不会刷新当前时间线
    

    after(date)

    date 这个参数可以是某一个特定时间值,在系统时间到达那一时刻后会使 Timeline 自动刷新
    
    

    never

    这个就是字面意思,永远不会刷新 Timeline,最后一个 entry 也展示完毕之后
    Widget 就会一直保持那个 entry 的显示内容
    
    

    对于 Name.intentdefinition 配置文件的理解

    带有配置的小组件 https://developer.apple.com/documentation/widgetkit/making-a-configurable-widget

    在配置文件里面添加的 Parameters 参数 ,xcode 会自动生成
     NameIntent (对应名称)的类和相关的参数对象的类,直接用就OK。
    

    如何添加多种小部件

    ///这种可以最多5个
    @main
    struct TameWidgets: WidgetBundle {
       @WidgetBundleBuilder
       var body: some Widget {
           StatusWidget()
           DetailWidget()
       }
    }
    
    
    ///这种可以写很多
    @main
    struct WidgetExamplesWidgetBundle: WidgetBundle {
        var body: some Widget {
            WidgetBundle1().body
            WidgetBundle2().body
        }
    }
    
    struct WidgetBundle1: WidgetBundle {
        var body: some Widget {
            AppGroupWidget()
            ClockWidget()
            CoreDataWidget()
            CountdownWidget()
            DeepLinkWidget()
        }
    }
    
    struct WidgetBundle2: WidgetBundle {
        var body: some Widget {
            EnvironmentWidget()
            NetworkWidget()
            PreviewWidget()
            TimerWidget()
            URLImageWidget()
        }
    }
    

    开源的Demo

    https://github.com/pawello2222/WidgetExamples.git

    https://github.com/Littleor/iWidget

    相关文章

      网友评论

          本文标题:WidgetKit记录

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