概要
UISwitchでチェックボックスを作ります。
こちらのAPIはiOS 14以降になるので注意してください。
スクリーンショット
UISwitchでチェックボックスを作るとご覧のような見た目になります。
タイトルもつけることができます。
コード
let checkBox = UISwitch()
checkBox.preferredStyle = .checkbox
checkBox.title = "Check!"
preferredStyleに = .checkboxを、そして表示したいタイトルをtitleに入れます。
このコードをiOSでビルドしてください。無事"setTitle: on UISwitch is only supported when running Catalyst apps in the Mac Idiom."のエラーが出て止まります。
Mac Catalystで動かす
実はこのUISwitchのチェックボックススタイルはMac Catalystでしか動きません。iOSのpreferredStyleに.checkboxを設定してもスタイルがチェックボックスになることはありません。
そしてUISwitchのtitleという部分はチェックボックスのためのプロパティなのでMac Catalyst以外で与えるとエラーになります。
Mac Catalyst設定
Version 14.3.1でUIUserInterfaceIdiom.macとして動かす設定方法はこちらです。
- Supported DestinationsでMac Catalystを追加
- Deployment InfoのMAc Catalyst Interfaceを
Optimize for Macに変更
コード
元々Mac CatalystはUISwitchのstyleが.checkboxとなっているため、以下のコードでiOSとMac Catalystでビルドエラーしないコードにすることができます。
if UIDevice.current.userInterfaceIdiom == .mac {
checkBox.title = "Check!"
}
逆に、iOSとMacでインターフェースを合わせて開発したい場合は明示的にスタイルを.slidingにすれば、Macでもスライド型のスイッチを使うことができます。
checkBox.preferredStyle = .sliding

