View in English

  • メニューを開く メニューを閉じる
  • Apple Developer
検索
検索を終了
  • Apple Developer
  • ニュース
  • 見つける
  • デザイン
  • 開発
  • 配信
  • サポート
  • アカウント
次の内容に検索結果を絞り込む

クイックリンク

5 クイックリンク

ビデオ

メニューを開く メニューを閉じる
  • コレクション
  • トピック
  • すべてのビデオ
  • 利用方法

その他のビデオ

ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。

  • 概要
  • コード
  • iPadおよびiPhoneアプリの共有スペース向けの機能強化

    Shared SpaceのためにiPadとiPhoneアプリを充実させましょう!visionOSでの体験を向上させる方法をお見せし、Designed for iPadアプリにおけるインタラクション、視覚処置とメディアを探求します。

    関連する章

    • 1:00 - Interaction
    • 7:55 - Visuals
    • 8:57 - Media

    リソース

      • HDビデオ
      • SDビデオ

    関連ビデオ

    WWDC23

    • 空間コンピューティングに向けたApp Store Connectの利用方法
    • 空間コンピューティング向けのゲーム開発
    • Shared SpaceにおけるiPadとiPhoneアプリの実行

    WWDC20

    • ゲームコントローラの進歩
  • ダウンロード
    Array
    • 3:02 - Tappable VStack with hover effect

      struct TappableCard: View {
         // Sample card
         var imageName = "BearsInWater"
         var headline = "Bear Fishing"
         var timeAgo = "42 Minutes ago"
         
         var body: some View {
            VStack {
               VStack(alignment: .leading) {
                  Image(imageName)
                     .resizable()
                     .clipped()
                     .aspectRatio(contentMode: .fill)
                     .frame(width: 300, height: 250, alignment: .center)
                  Text(headline)
                     .padding([.leading])
                     .font(.title2)
                     .foregroundColor(.black)
               }
               Divider()
               HStack {
                  HStack {
                     Text(timeAgo)
                        .frame(alignment: .leading)
                        .foregroundColor(.black)
                  }
                  .padding([.leading])
                  Spacer()
                  VStack(alignment: .trailing) {
                     Button { print("Present menu options") } label: {
                        Image(systemName: "ellipsis")
                           .foregroundColor(.black)
                     }
                  }
               }
               .padding(EdgeInsets(top: 5, leading: 5, bottom: 5, trailing: 5))
            }
            .frame(width: 300, height: 350, alignment: .top)
            .hoverEffect()
            .background(.white)
            .overlay(
               RoundedRectangle(cornerRadius: 10)
                  .stroke(Color(.sRGB, red: 150/255, green: 150/255, blue: 150/255, opacity: 0.1), lineWidth: 3.0)
            )
            .cornerRadius(10)
            .onTapGesture {
               print("Present card detail")
            }
         }
      }
    • 4:08 - Custom player with tap targets that are larger than the hover effect bounds

      struct ContentView: View {
         var body: some View {
            VStack {
               // Video player
               HStack {
                  Button { print("Going back 10 seconds") } label: {
                     Image(systemName: "gobackward.10")
                        .padding(.trailing)
                        .contentShape(.hoverEffect, CustomizedRectShape(customRect: CGRect(x: -75, y: -40, width: 100, height: 100)))
                        .foregroundStyle(.white)
                        .frame(width: 500, height: 834, alignment: .trailing)
                  }
                  Button { print("Play") } label: {
                     Image(systemName: "play.fill")
                        .font(.title)
                        .foregroundStyle(.white)
                        .frame(width: 100, height: 100, alignment: .center)
                  }
                  .padding()
                  Button { print("Going into the future 10 seconds") } label: {
                     Image(systemName: "goforward.10")
                        .padding(.leading)
                        .contentShape(.hoverEffect, CustomizedRectShape(customRect: CGRect(x: 0, y: -40, width: 100, height: 100)))
                        .foregroundStyle(.white)
                        .frame(width: 500, height: 834, alignment: .leading)
                  }
               }
               .frame(
                    minWidth: 0,
                    maxWidth: .infinity,
                    minHeight: 0,
                    maxHeight: .infinity,
                    alignment: .center
               )
            }
            .frame(
                 minWidth: 0,
                 maxWidth: .infinity,
                 minHeight: 0,
                 maxHeight: .infinity,
                 alignment: .topLeading
            )
            .background(.black)
         }
      }
      
      struct CustomizedRectShape: Shape {
         var customRect: CGRect
         
         func path(in rect: CGRect) -> Path {
            var path = Path()
            
            path.move(to: CGPoint(x: customRect.minX, y: customRect.minY))
            path.addLine(to: CGPoint(x: customRect.maxX, y: customRect.minY))
            path.addLine(to: CGPoint(x: customRect.maxX, y: customRect.maxY))
            path.addLine(to: CGPoint(x: customRect.minX, y: customRect.maxY))
            path.addLine(to: CGPoint(x: customRect.minX, y: customRect.minY))
            
            return path
         }
      }
    • 5:14 - Button with custom buttonStyle, then adding a hover effect to the button

      struct ContentView: View {
          var body: some View {
              VStack {
               Button("Howdy y'all") { print("🤠") }
                  .buttonStyle(SixColorButton())
              }
              .padding()
          }
      }
      
      struct SixColorButton: ButtonStyle {
         func makeBody(configuration: Configuration) -> some View {
            configuration.label
               .padding()
               .font(.title)
               .foregroundStyle(.white)
               .bold()
               .background {
                  // Background color bands
                  ZStack {
                     Color.black
                     HStack(spacing: 0) {
                        // GREEN
                        Rectangle()
                           .foregroundStyle(Color(red: 125/255, green: 186/255, blue: 66/255))
                           .frame(width: 16)
                        // YELLOW
                        Rectangle()
                           .foregroundStyle(Color(red: 240/255, green: 187/255, blue: 64/255))
                           .frame(width: 16)
                        // ORANGE
                        Rectangle()
                           .foregroundStyle(Color(red: 225/255, green: 137/255, blue: 50/255))
                           .frame(width: 16)
                        // RED
                        Rectangle()
                           .foregroundStyle(Color(red: 200/255, green: 73/255, blue: 65/255))
                           .frame(width: 16)
                        // PURPLE
                        Rectangle()
                           .foregroundStyle(Color(red: 134/255, green: 64/255, blue: 151/255))
                           .frame(width: 16)
                        // BLUE
                        Rectangle()
                           .foregroundStyle(Color(red: 75/255, green: 154/255, blue: 218/255))
                           .frame(width: 16, height: 500)
                     }
                     .opacity(0.7)
                     .rotationEffect(.degrees(35))
                  }
               }
               .cornerRadius(10)
               .hoverEffect()
         }
      }
    • 5:46 - Honey comb app with custom shape buttons, then adding hover effects that clip to bounds of the honey comb shape

      struct ContentView: View {
          var body: some View {
            VStack {
               Button { print("🐝") } label: {
                  // Button label
                  HoneyComb()
                     .fill(.yellow)
                     .frame(width: 300, height: 300)
                     .contentShape(.hoverEffect, HoneyComb())
                  }
               }
               .frame(width: 400, height: 400, alignment: .center)
               .background(.black)
               .padding()
            }
          }
      }
      
      struct HoneyComb: Shape {
         func path(in rect: CGRect) -> Path {
            var path = Path()
            path.move(to: CGPoint(x: rect.minX + (rect.width * 0.25), y: rect.minY))
            path.addLine(to: CGPoint(x: rect.maxX - (rect.maxX * 0.25), y: rect.minY))
            path.addLine(to: CGPoint(x: rect.maxX, y: rect.midY))
            path.addLine(to: CGPoint(x: rect.maxX - (rect.maxX * 0.25), y: rect.maxY))
            path.addLine(to: CGPoint(x: rect.minX + (rect.width * 0.25), y: rect.maxY))
            path.addLine(to: CGPoint(x: rect.minX, y: rect.midY))
            path.addLine(to: CGPoint(x: rect.minX + (rect.width * 0.25), y: rect.minY))
            return path
         }
      }
  • 特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。

    クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。

Developer Footer

  • ビデオ
  • WWDC23
  • iPadおよびiPhoneアプリの共有スペース向けの機能強化
  • メニューを開く メニューを閉じる
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    メニューを開く メニューを閉じる
    • アクセシビリティ
    • アクセサリ
    • App Extension
    • App Store
    • オーディオとビデオ(英語)
    • 拡張現実
    • デザイン
    • 配信
    • 教育
    • フォント(英語)
    • ゲーム
    • ヘルスケアとフィットネス
    • アプリ内課金
    • ローカリゼーション
    • マップと位置情報
    • 機械学習
    • オープンソース(英語)
    • セキュリティ
    • SafariとWeb(英語)
    メニューを開く メニューを閉じる
    • 英語ドキュメント(完全版)
    • 日本語ドキュメント(一部トピック)
    • チュートリアル
    • ダウンロード(英語)
    • フォーラム(英語)
    • ビデオ
    Open Menu Close Menu
    • サポートドキュメント
    • お問い合わせ
    • バグ報告
    • システム状況(英語)
    メニューを開く メニューを閉じる
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles(英語)
    • フィードバックアシスタント
    メニューを開く メニューを閉じる
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program(英語)
    • News Partner Program(英語)
    • Video Partner Program(英語)
    • セキュリティ報奨金プログラム(英語)
    • Security Research Device Program(英語)
    Open Menu Close Menu
    • Appleに相談
    • Apple Developer Center
    • App Store Awards(英語)
    • Apple Design Awards
    • Apple Developer Academy(英語)
    • WWDC
    Apple Developerアプリを入手する
    Copyright © 2025 Apple Inc. All rights reserved.
    利用規約 プライバシーポリシー 契約とガイドライン