provider:控制器,這裡可以用來做小組件的重新整理操作
******entry: 這個是資料模型,provider 裡如果想更新資料到 widgetentryview,必須通過 ******entry 來實現,當然命名隨意了,但是這個必須繼承 timelineentry。同時也可以新增引數,變數什麼的,用來傳遞自己需要的資料型別。
widgetentryview: 這就是主檢視了,在這裡自定義頁面用來顯示在手機桌面。
import widgetkit
import swiftui
import intents
// 控制器,類似controller,這裡可以用來做小組件的重新整理操作
struct provider: intenttimelineprovider
func getsnapshot(for configuration: configurationintent, in context: context, completion: @escaping (******entry) -> ())
func gettimeline(for configuration: configurationintent, in context: context, completion: @escaping (timeline) -> ())
let timeline = timeline(entries: entries, policy: .atend)
completion(timeline)
}}// 資料模型,資料顯示在view上必須經過這裡
struct ******entry: timelineentry
// view,小組件的介面
struct widgetextensionentryview : view
}// 程式入口,初始化相關資訊,如provider,view等
@main
struct widgetextension: widget
.configurationdisplayname("小組件")
.description("this is an 測試一下 widget.")
}}// 自定義樣式
struct widgetextension_previews: previewprovider
}
// 自定義樣式
struct widgetextension_previews: previewprovider
}
// view,小組件的介面
struct widgetextensionentryview : view )
})})}}
// view,小組件的介面
// view,小組件的介面
struct widgetextensionentryview : view )
})}).widgeturl(url(string: "widgetextensiondemo://test1"))
case .systemmedium:
// 深度布局,螢幕深度
zstack(alignment: .center, content: ).foregroundcolor(.gray)
})}).widgeturl(url(string: "widgetextensiondemo://test2"))
case .systemlarge:
// 深度布局,螢幕深度
zstack(alignment: .center, content: )
}).foregroundcolor(.blue)
}).widgeturl(url(string: "widgetextensiondemo://test3"))
default:
// 深度布局,螢幕深度
zstack(alignment: .center, content: )
})}).widgeturl(url(string: "widgetextensiondemo://test1"))}}
}
// 更多小組件
@main
struct widgets:widgetbundle
@widgetbundlebuilder
var body: some widget
}struct customwidget:widget
.configurationdisplayname("自定義更多元件")
.description("ios14自定義更多小組件")
}}// 自定義ui
struct customentryview:view )
})}).widgeturl(url(string: "widgetextensiondemo://test1"))
case .systemmedium:
// 深度布局,螢幕深度
zstack(alignment: .center, content: ).foregroundcolor(.gray)
})}).widgeturl(url(string: "widgetextensiondemo://test2"))
case .systemlarge:
// 深度布局,螢幕深度
zstack(alignment: .center, content: )
}).foregroundcolor(.blue)
}).widgeturl(url(string: "widgetextensiondemo://test3"))
default:
// 深度布局,螢幕深度
zstack(alignment: .center, content: )
})}).widgeturl(url(string: "widgetextensiondemo://test1"))}}
}
參考1
參考2
刪除桌面小箭頭小盾牌
reg add hkey local machine software microsoft windows currentversion explorer shell icons v 29 d systemroot system32 imageres.dll,197 t reg sz f taskk...
桌面懸浮小控制項
受益於 寫的很好 一 首先需要兩個許可權 1.這個是感知桌面的許可權 2.獲取桌面狀態 二 然後需要來乙個自定義控制項 做乙個最簡單的,乙個紅色的小球。public class myview extends linearlayout public void setparams android.vie...
iOS字型外掛程式Fonty
fonty 是乙個ios字型外掛程式。它能讓你的ios 應用直接使用第三方的ttf,otf or ttc字型,而無需事先將字型檔案加入安裝包內。將fonty庫匯入到你的工程中。你可以直接手動匯入fonty資料夾,也可以使用cocoapods target targetname do pod font...