美文网首页
iOS14 Widget从开发到上线 (二)

iOS14 Widget从开发到上线 (二)

作者: Lsx_f | 来源:发表于2020-11-19 18:04 被阅读0次

    咱们这次只做一个布局,其它的布局都是类似的,这是最终的效果。
    还是用上次的项目接着进行了。

    1.创建数据模型
    //分享的数据
    struct WidgetModel {
    var id: Int
    var name :String
    var icon :String
    var linkUri :String
    }
    //头部数据
    struct imageModel {
    var id : Int
    var image :UIImage
    }```
    
    
    // 模拟头部数据
    let imageModels = [
    imageModel(id: 0, image: UIImage(named: "beautiful")!)
    ]
    // 模拟分享数据
    let WidgetModels = [
    WidgetModel(id: 0, name: "朋友圈", icon: "1", linkUri: "1"),
    WidgetModel(id: 1, name: "微博", icon: "2", linkUri: "2"),
    WidgetModel(id: 2, name: "收藏", icon: "3", linkUri: "3"),
    WidgetModel(id: 3, name: "按微信", icon: "4", linkUri: "4")
    ]
    
    2.搭建展示页面
    // beautiful 该图片的比例 1.6:1
    struct SWidgetEntryView : View {
    var entry: Provider.Entry
    var body: some View {
    
    VStack (alignment:.center){
    GeometryReader {//获取父视图的大小
    proxy in
    Image("beautiful") //头部图片
    .resizable()
    .aspectRatio(contentMode:.fit)
    .frame(width: proxy.size.width, height: proxy.size.width/1.6)
    }
    HStack (alignment:.center, spacing:25){
    ForEach(0 ..< WidgetModels.count){ //循环个数
    index in
    let mode = WidgetModels[index]
    Link(destination: URL(string: mode.linkUri)!){ //点击事件
    VStack{
    Image(mode.icon as String) //icon 展示图
    .resizable()
    .frame(width: 60, height: 60, alignment: .center)
    Text(mode.name as String) //文字展示
    .frame(width: .infinity, height: 20, alignment: .center)
    .foregroundColor(.black)
    .font(.system(size: 15))
    }
    }
    }
    }
    Spacer(minLength: 40)
    }
    }
    }
    

    页面比较简单就没抽取代码,大家可以抽一下,看着会比较舒坦,注释都有看一下就会明白。

    3.保存所需要的数据
    //用来保存所需要的数据
    struct SimpleEntry: TimelineEntry {
    let date: Date
    let model: WidgetModel
    let imgModel: imageModel
    }
    
    4.运行

    跑起来看看效果吧,记得把需要的图片导入,别导错位置了。


    iOS14 Widget从开发到上线 (一)
    iOS14 Widget从开发到上线 (三)
    iOS14 Widget从开发到上线 (四)

    之后的内容会涉及到如下:
    1.加载网络图片。
    2.主动刷新组件数据。
    3.与主app 共享数据。
    4.oc-swift 混编 调用。
    5.打包上架注意的问题。
    可能还会有补充....持续更新!

    相关文章

      网友评论

          本文标题:iOS14 Widget从开发到上线 (二)

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