
iOS
时间一粒
这个作者很懒,什么都没留下…
展开
-
SwiftUI: pages jump and return
方法1:NavigationViewimport SwiftUIstruct ContentView: View { var body: some View { NavigationView { List(0..<100) { row in NavigationLink(destination: Text("Detail \(row)")) { Text("Hello wor转载 2021-09-15 16:25:58 · 156 阅读 · 0 评论 -
SwiftUI:List动态增加
import SwiftUIstruct ContentView: View { @State var rowCount = 4 var body: some View { VStack {// List(0..<rowCount){ row in// Text("Row \(row)")// } List(0..<rowC转载 2022-01-15 19:45:27 · 460 阅读 · 0 评论 -
SwiftUI:background
import SwiftUIstruct ContentView: View { var body: some View {// Text("Hello world").background(Color.red) Text("Hello world").frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center) .background(Color.blue转载 2022-01-15 19:45:52 · 1146 阅读 · 0 评论 -
SwiftUI:Alert & Sheet与可选状态的使用
import SwiftUIstruct User:Identifiable { let id:String}struct ContentView: View {// @State var showingAlert = false @State var selectedUser:User? var body: some View { VStack { Button("Show Alert") {转载 2021-09-01 14:09:18 · 305 阅读 · 0 评论 -
SwiftUI:描边框与描形状(stroke & strokeBorder)
import SwiftUIstruct ContentView: View { @State var rating = 0.0 var body: some View {// Circle().stroke(Color.red).frame(width: 100, height: 100, alignment: .center) Circle().stroke(Color.red, lineWidth: 20)//.frame(width: 100, h转载 2021-09-01 13:53:34 · 1676 阅读 · 0 评论 -
SwiftUI:Modifier顺序错误对比
import SwiftUIstruct ContentView: View { var body: some View { Text("Hello World").font(.largeTitle).background(Color.green).padding() Text("Hello World").font(.largeTitle).padding().background(Color.green) Text("Hell转载 2021-09-01 11:45:25 · 152 阅读 · 0 评论 -
SwiftUI:Timer Remaining
import SwiftUIstruct ContentView: View { @State var timeRemaining = 100 let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect() @State var isActive = true var body: some View { ZStack { Image("backgro转载 2021-09-01 11:11:48 · 200 阅读 · 0 评论 -
SwiftUI:CardView RoundedRectangle shadow
import SwiftUIstruct ContentView: View { var body: some View { CardView(card: Card.example) }}struct Card { let prompt: String let answer: String static var example: Card { Card(prompt: "Who played the 13th Doc转载 2021-09-01 10:23:31 · 282 阅读 · 0 评论 -
SwiftUI:NotificationCenter willResignActiveNotification willEnterForegroundNotification
import SwiftUIstruct ContentView: View { var body: some View { Text("Hello").onReceive(NotificationCenter.default.publisher(for: UIApplication.willResignActiveNotification)) { _ in print("Enter background") }转载 2021-09-01 09:53:35 · 680 阅读 · 0 评论 -
SwiftUI:Timer
import SwiftUIstruct ContentView: View { let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect() var body: some View { Text("Hello").onReceive(timer, perform: { time in print("Current time is \(time)转载 2021-09-01 09:30:00 · 517 阅读 · 0 评论 -
SwiftUI:onTapGesture allowsHitTesting contentShape
import SwiftUIstruct ContentView: View { var body: some View { ZStack { Rectangle().fill(Color.blue).frame(width: 300, height: 300).onTapGesture(perform: { print("Tap rectangle!") }) //转载 2021-09-01 09:15:31 · 453 阅读 · 0 评论 -
SwiftUI:CoreHaptics CHHapticEngine
import SwiftUIimport CoreHapticsstruct ContentView: View { @State var engine:CHHapticEngine? var body: some View {// Text("Hello World").onTapGesture {// simpleSuccess()// } Text("Hellow, World").onAppear(perf转载 2021-09-01 08:54:22 · 467 阅读 · 0 评论 -
SwiftUI:gesture
import SwiftUIstruct ContentView: View { @State var currentAmount:CGFloat = 0 @State var finalAmount:CGFloat = 1 var body: some View { Text("Hello World") .scaleEffect(finalAmount + currentAmount) .gesture(转载 2021-09-01 08:54:04 · 177 阅读 · 0 评论 -
SwiftUI:CIFilter qrCodeGenerator
import SwiftUIimport CoreImage.CIFilterBuiltinsstruct ContentView: View { let context = CIContext() let filter = CIFilter.qrCodeGenerator() @State var name = "Tom" @State var emailAddress = "Your@site.com" var body: some View {转载 2021-08-31 17:15:11 · 201 阅读 · 0 评论 -
SwiftUI:UNUserNotificationCenter
import SwiftUIimport UserNotificationsstruct ContentView: View { @State var backgroundColor = Color.red var body: some View { VStack { Button("Request permission") { UNUserNotificationCenter.current().requestA转载 2021-08-31 16:38:38 · 320 阅读 · 0 评论 -
SwiftUI:contextMenu
import SwiftUIstruct ContentView: View { @State var backgroundColor = Color.red var body: some View { VStack { Text("Hello World").padding().background(backgroundColor) Text("Change color").padding().c转载 2021-08-31 16:19:44 · 572 阅读 · 0 评论 -
SwiftUI:@ObservedObject &willSet
import SwiftUIstruct ContentView: View { @ObservedObject var updater = DelayedUpdate() var body: some View { Text("Value is : \(updater.value)") }}class DelayedUpdate: ObservableObject {// @Published var value = 0 var value转载 2021-08-31 15:37:08 · 123 阅读 · 0 评论 -
SwiftUI:TabView tabItem
import SwiftUIstruct ContentView: View { @State var selectedTab = 0 var body: some View { TabView(selection: $selectedTab){ Text("Tab 1").onTapGesture { selectedTab = 1 }.tabItem { I转载 2021-08-31 15:26:24 · 561 阅读 · 0 评论 -
SwiftUI:ObservableObject & @ObservableObject &environmentObject
import SwiftUIclass User: ObservableObject { @Published var name = "Taylor Swift"}struct EditView: View { ObservableObject var user: User var body: some View{ TextField("Name", text:$user.name) }}struct DisplayView:View {转载 2021-08-31 15:14:38 · 224 阅读 · 0 评论 -
SwiftUI:UIImage-CIImage-Image
import SwiftUIimport CoreImage.CIFilterBuiltinsstruct ContentView: View { @State var image:Image? var body: some View { VStack { image?.resizable().scaledToFit() }.onAppear(perform: { loadImage()转载 2021-08-31 14:05:52 · 198 阅读 · 0 评论 -
SwiftUI:ActionSheet
import SwiftUIstruct ContentView: View { @State var showingActionSheet = false @State var backgroundColor = Color.white var body: some View { Text("Hello, World").frame(width: 300, height: 300).background(backgroundColor).onTapGe转载 2021-08-31 12:00:34 · 533 阅读 · 0 评论 -
SwiftUI: Cupcake corner
import SwiftUIclass Order: ObservableObject, Codable { enum CodingKeys: CodingKey { case type, quantity, extraForsting, addSprinkles, name, streetAddress, city, zip } static let types = ["Vanilla", "Strawberry", "Chocolate", "Rainbow"转载 2021-08-31 11:40:46 · 135 阅读 · 0 评论 -
SwiftUI:Form Section disabled
import SwiftUIstruct ContentView: View { @State var username = "" @State var email = "" var disableForm:Bool { username.count < 5 || email.count < 5 } var body: some View { Form { Section {转载 2021-08-31 09:09:34 · 179 阅读 · 0 评论 -
SwiftUI:withAnimation & rotation3DEffect
import SwiftUIstruct ContentView: View { @State var animationAmount = 0.0 var body: some View { Button("Tap Me") { withAnimation(.interpolatingSpring(stiffness: 5, damping: 1)) { self.animationAmount +转载 2021-08-30 14:58:55 · 229 阅读 · 0 评论 -
SwiftUI:Animation & Stepper
import SwiftUIstruct ContentView: View { @State var animationAmount:CGFloat = 1 var body: some View { print("animationAmount:\(animationAmount)") return VStack{ Stepper("Scale amount", value:$animationAmount.animation(转载 2021-08-30 13:53:08 · 158 阅读 · 0 评论 -
SwiftUI:Animation & scaleEffect &overlay
import SwiftUIstruct ContentView: View { @State var animationAmount:CGFloat = 1 var body: some View { Button("Tap Me") { self.animationAmount += 1 }.padding(50).background(Color.red).foregroundColor(.white).clipShape(C转载 2021-08-30 11:46:18 · 269 阅读 · 0 评论 -
SwiftUI:extension & JSONDecoder &DateFormatter
import SwiftUIextension Bundle { func decode<T:Codable> (_ file:String) -> T { guard let url = url(forResource: file, withExtension: nil) else { fatalError("Failed to locate \(file) in bundle.") } guard l转载 2021-08-30 11:16:48 · 149 阅读 · 0 评论 -
SwiftUI:JSONDecoder & Codable & Data
import SwiftUIstruct Address:Codable { var street: String var city:String}struct User: Codable { var name:String var address:Address}struct ContentView: View { @State var user:User? = nil var body: some View { But转载 2021-08-30 09:10:52 · 291 阅读 · 0 评论 -
SwiftUI:NavigationView NavigationLink
import SwiftUIstruct ContentView: View { var body: some View { NavigationView { List(0..<100) { row in NavigationLink(destination: Text("Detail \(row)")) { Text("Hello world")转载 2021-08-27 15:22:53 · 266 阅读 · 0 评论 -
SwiftUI:ScrollView frame List
import SwiftUIstruct ContentView: View { var body: some View {// ScrollView(.vertical) {// VStack(spacing: 10) {// ForEach(0..<100) {// CustomText("Item \($0)", $0).font(.title)//转载 2021-08-27 14:59:31 · 200 阅读 · 0 评论 -
SwiftUI:GeometryReader Image aspectRatio
import SwiftUIstruct ContentView: View { var body: some View { GeometryReader{ geo in VStack { Image("hello").resizable().aspectRatio(contentMode: .fit) .frame(width: geo.size.width) }转载 2021-08-27 14:37:36 · 302 阅读 · 0 评论 -
SwiftUI:Identifiable & ObservedObject & navigationBarItems
struct ExpenseItem:Identifiable { let id = UUID() let name:String let type:String let amount:Int}class Expenses: ObservableObject { @Published var items = [ExpenseItem]()}struct ContentView: View { @ObservedObject var expenses =转载 2021-08-27 14:09:25 · 165 阅读 · 0 评论 -
SwiftUI:UserDefaults & JSONEncoder & JSONDecoder
import SwiftUIstruct User : Codable { var firstName:String var lastName:String }struct ContentView: View { @State var user = User(firstName: "Taylor", lastName: "Swift") @State var tapCount = 0 var body: some View {转载 2021-08-27 11:04:38 · 263 阅读 · 0 评论 -
SwiftUI:List & onDelete
import SwiftUIstruct ContentView: View { @State var numbers = [Int]() @State var currentNumber = 1 var body: some View { NavigationView { VStack { List { ForEach(numbers, id:\.self)转载 2021-08-26 19:25:44 · 460 阅读 · 0 评论 -
SwiftUI:Sheet showing & Hiding
import SwiftUIstruct ContentView: View { @State var showingSheet = false var body: some View { Button("Show Sheet") { showingSheet.toggle() }.sheet(isPresented: $showingSheet) { SecondView(name转载 2021-08-26 17:32:43 · 106 阅读 · 0 评论 -
SwiftUI:List & Section
import SwiftUIstruct ContentView: View { var body: some View { List { Section(header: Text("Header")) { Text("Hello") Text("World") } Section(header: Text("H转载 2021-08-26 08:43:13 · 865 阅读 · 0 评论 -
SwiftUI: ForEach & Binding
import SwiftUIstruct ContentView: View { @State var selection = 0 var body: some View { let binding = Binding(get: {selection}, set: {selection = $0} ) return VStack { Picker("Select a number", selection:转载 2021-08-25 17:45:32 · 348 阅读 · 0 评论 -
SwiftUI:Stepper & DatePicker
import SwiftUIstruct ContentView: View { @State var sleepAmount = 9.0 @State var wakeUp = Date() var body: some View { Stepper(value: $sleepAmount, in:4...12, step:0.25) { Text("\(sleepAmount, specifier: "%.2f") hour转载 2021-08-25 17:11:11 · 157 阅读 · 0 评论 -
SwiftUI:自定义容器
struct ContentView: View { var body: some View { GStack(rows: 4, cols: 4) { row, col in HStack { Image(systemName: "\(row*4+col).circle") Text("R\(row) C\(col)") } }转载 2021-08-25 15:32:19 · 175 阅读 · 0 评论 -
SwiftUI:自定义modifier
import SwiftUIstruct ContentView: View { var body: some View { VStack(spacing: 10) { Text("Hello").modifier(CapsuleText()) Text("World").titleStyle() Color.blue.frame(width: 300, height: 300).watermarked(t转载 2021-08-25 15:11:44 · 414 阅读 · 0 评论