Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Очень полезная статья. Спасибо.
init(_ data: Data, id: KeyPath<Data.Element, ID>, content: @escaping (Data.Element) -> Content)
struct Article {
let title: String
let body: String
}
let a1 = Article(title:"title", body:"body")
let v1 : (Article)->String = { (it) in it.title }
print("v1:",type(of:v1),v1(a1))
let v2 : (Article)->String = { $0.title }
print("v2:",type(of:v2),v2(a1))
let v3 : KeyPath<Article,String> = \.title
print("v3:",type(of:v3),a1[keyPath:v3])
let v4 = \Article.title
print("v4:",type(of:v3),a1[keyPath:v4])
v1: (Article) -> String title
v2: (Article) -> String title
v3: WritableKeyPath<Article, String> title
v4: WritableKeyPath<Article, String> title
.onTapGesture(), в том числе и Image. Анимация — легко . Подписи к кнопкам — всего-то использовать .overlay(Text("Кнопка")). Единственное, для проигрывания аудио потребуется AVAudioPlayer из Foundation — но его в любом случае использовать, что в SwiftUI, что в UIKit (ну или какие-то другие библиотеки для работы со звуками, все таки SwiftUI — это про изображение).Вы не сможете использоватьdidSetwillSetсобытия параметров структуры, обернутых в какие-то обертки.
value += 1 или bool.toggle()В XCode был баг, и в этих случаях обзёрверы State свойств действительно не срабатывали. В 11.5 это пофиксили. Я сделал апдейт статьи.Спасибо. Очень полезная статья
SwiftUI по полочкам