3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

概要

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

macでスライド型スイッチ.png

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?