struct DevTechieContainerRelativeShapeExample: View { var body: some View { Text("DevTechie") .font(.largeTitle) .padding() .background(.white, in: RoundedRectangle(cornerRadius: 20)) .padding(5) .background(.mint, in: RoundedRectangle(cornerRadius: 20)) .padding(5) .background(.orange, in: RoundedRectangle(cornerRadius: 20)) .padding(5) .background(.indigo, in: RoundedRectangle(cornerRadius: 20)) } }
struct DevTechieContainerRelativeShapeExample: View { var body: some View { Text("DevTechie") .font(.largeTitle) .padding() .background(ContainerRelativeShape().fill(Color.white)) .padding(5) .background(ContainerRelativeShape().fill(Color.mint)) .padding(5) .background(ContainerRelativeShape().fill(Color.orange)) .padding(5) .background(.indigo, in: RoundedRectangle(cornerRadius: 20)) } }
import WidgetKit import SwiftUIstruct Provider: TimelineProvider { func placeholder(in context: Context) -> SimpleEntry { SimpleEntry(date: Date()) }func getSnapshot(in context: Context, completion: @escaping (SimpleEntry) -> ()) { let entry = SimpleEntry(date: Date()) completion(entry) }func getTimeline(in context: Context, completion: @escaping (Timeline<Entry>) -> ()) { var entries: [SimpleEntry] = []// Generate a timeline consisting of five entries an hour apart, starting from the current date. let currentDate = Date() for hourOffset in 0 ..< 5 { let entryDate = Calendar.current.date(byAdding: .hour, value: hourOffset, to: currentDate)! let entry = SimpleEntry(date: entryDate) entries.append(entry) }let timeline = Timeline(entries: entries, policy: .atEnd) completion(timeline) } }struct SimpleEntry: TimelineEntry { let date: Date }struct WidgetSamplesEntryView : View { var entry: Provider.Entryvar body: some View { Text(entry.date, style: .time) } }@main struct WidgetSamples: Widget { let kind: String = "WidgetSamples"var body: some WidgetConfiguration { StaticConfiguration(kind: kind, provider: Provider()) { entry in WidgetSamplesEntryView(entry: entry) } .configurationDisplayName("My Widget") .description("This is an example widget.") } }struct WidgetSamples_Previews: PreviewProvider { static var previews: some View { WidgetSamplesEntryView(entry: SimpleEntry(date: Date())) .previewContext(WidgetPreviewContext(family: .systemSmall)) } }
struct WidgetSamplesEntryView : View { var entry: Provider.Entryvar body: some View { ZStack { ContainerRelativeShape() .fill(Color.orange.gradient) .padding(10) Text(entry.date, style: .time) } } }
With that we have reached the end of this article. Thank you once again for reading. Don’t forget to subscribe our newsletter at https://www.devtechie.com