SwiftUIでギターフレットを描画

Swift UI で ギターフレットを描画

ギターのアプリを作りたい。

とりあえずフレット描画してみる。

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack {
            Canvas { context, size in
                let topMargin = 50.0
                let leftMargin = 20.0
                let rowheight = (size.height - 160) / 5
                let fletwidth = (size.width - 100) / 12
                                for col in 0...12 {
                    for row in 0...5 {
                        let xpos = leftMargin + (fletwidth * CGFloat(col))
                        let ypos = topMargin + (rowheight * CGFloat(row))

                        if col == 0 {
                            context.draw(
                                Text("\(row+1)").font(.title2), at: CGPoint(x:xpos + fletwidth/2, y:ypos))
                        } else {
                            if row == 5 {
                                context.draw(
                                    Text("\(col)").font(.title2), at: CGPoint(x:xpos + fletwidth/2, y:ypos + 25))
                                                            } else {
                                context.stroke(
                                    Path(CGRect(x: xpos,
                                                y: ypos,
                                                width: fletwidth,
                                                height: rowheight )),
                                    with: .color(.blue)
                                )
                            }
                        }
                    }
                }
            }
            .border(Color(cgColor: .init(red: 0, green: 0, blue: 0, alpha: 1)))
        }
        .frame(width: 800, height: 360)
        .border(Color(cgColor: .init(red: 1, green: 0, blue: 0, alpha: 1)))
    }
}

 

Swiftui guitar flet.

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です