ToggleとToggleライクなボタン (iOSアプリ)
ToggleはAppleのデザインガイドラインTogglesによると、リスト形式のみで使用することが推奨されています。
例えば、
上の画面では、リスト形式でToggleを使用しています。これはAppleのデザインガイドラインに沿った設計となります。
それ以外ではToggleライクなボタンの使用を推奨しています。例えば、iOSで元から搭載されているカレンダーアプリの右上で使われています。
普通のボタンの背景を変えることで、Toggleのように表現しています。余計なスペースをとらずに済むのがメリットです。※シミュレータで動かしています。
UIKitでの実装方法
UIBarButtonItemをトグルライクに
class ViewController: UIViewController {
...
// toggleライクなボタン
lazy var button: UIBarButtonItem = {
let action = UIAction(handler: {
[weak self] _ in
guard let self else {
return
}
self.toggle = !self.toggle
self.button.isSelected = self.toggle
})
let button = UIBarButtonItem(primaryAction: action)
button.image = UIImage(systemName: "server.rack")
button.changesSelectionAsPrimaryAction = true
button.isSelected = self.toggle
return button
}()
private var toggle = true
...
}
SwiftUIでの実装方法
Toggle(isOn: $flag) {
Image(systemName: "flag.fill")
}
.toggleStyle(.button)
toggleStyle(.button)を指定することでtoggleライクなボタンになります。


