Open3

WWDC 2024 メモ

swifttyswiftty

https://www.youtube.com/watch?v=LWbgpheCqgo

List などが行っている、コンテンツ部分を subviews として取り出せる仕組みが API に追加

List {
  Text("1")
  Text("2")
  ForEach(items) { item in
    Text(item.name)
  }
}
struct MyList<Content: View> {
  @ViewBuilder var content: () -> Content

  var body: some View {
    List {
      // content で受け取ったビューから要素を取り出せる
      ForEach(subviewOf: content()) { subview in
        DecoratedView {
          subview
        }
      }
    }
  }
}

#Preview {
  MyList {
    Text("1")
    Text("2")
    ForEach(items) { item in
      Text(item.name)
    }
  }
}

📝 _VariadicView で用いられていた機能が正式な API として公開された

https://movingparts.io/variadic-views-in-swiftui

swifttyswiftty

https://www.youtube.com/watch?v=alhFwkbsxrs

scrollTransition

📝これは去年追加されたので iOS17 からある

MeshGradient

📝 縦・横、グリッド上に色を任意に配置してグラデーションを実現できる
📝 アニメーションも可

TextRenderer

📝 Text からグリフ要素を取り出しさらにイメージフィルタを加えてレンダリングすることが可能
📝 先の Transition と組み合わせると表示・非表示に合わせて行うことも可