概要
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