SwiftUI用のジョイスティックUIライブラリ OMJoystickを公開した
Published in
3 min readSep 12, 2020
SwiftUI用のジョイスティックUIライブラリ OMJoystickを公開しました。CocoaPodsとSwift Package Managerからダウンロードできます。
なぜ使ったか
Takuya Ichise はomicroというロボットボールを個人で作っています。
omicroを操作するiOSアプリはこれまでUIKitで書いてきましたが、SwiftUIに書き換える作業が発生したので、そのタイミングでジョイスティック部分をライブラリ化して公開しました。
動作イメージ
インストール方法
CocoaPodsからインストールする場合はPodfileに下記のように記述します。
pod ‘OMJoystick’
サンプル
以下のコードで、デフォルト設定のまま動かすことができます。
import SwiftUI
import OMJoystickstruct ContentView: View {
var body: some View {
OMJoystick(colorSetting: ColorSetting()) { (joyStickState, stickPosition) in
}
}
}
アイコンやサイズ、色などの見た目を変えたい場合は、下記のように設定します。
import SwiftUI
import OMJoystick
import SFSafeSymbolsstruct ContentView: View {
let iconSetting = IconSetting(
leftIcon: Image(systemSymbol: .arrowLeft),
rightIcon: Image(systemSymbol: .arrowRight),
upIcon: Image(systemSymbol:.arrowUp),
downIcon: Image(systemSymbol: .arrowDown)
)
let colorSetting = ColorSetting(subRingColor: .red, bigRingNormalBackgroundColor: .green, bigRingDarkBackgroundColor: .blue, bigRingStrokeColor: .yellow)
var body: some View {
GeometryReader { geometry in
VStack(alignment: .center, spacing: 5) {
OMJoystick(isDebug: true, iconSetting: self.iconSetting, colorSetting: ColorSetting(), smallRingRadius: 70, bigRingRadius: 120
) { (joyStickState, stickPosition) in
}.frame(width: geometry.size.width-40, height: geometry.size.width-40)
}
}
}
}