この記事は2018年11月11日に投稿しました。
目次
絶対に挫折しないiPhoneアプリ開発「超」入門 増補第6版【Swift 4 & iOS 11】完全対応 (Informatics&IDEA)
- 作者: 高橋京介
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2017/11/22
- メディア: 単行本
- この商品を含むブログを見る
1. はじめに
こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回はPWEditorで使用しているXLFormライブラリのセグメントコントロールの使用方法です。
2. 前提
この記事を参考にXLFormを使用できるようにしておいてください。
3. XLFormのセグメントコントロールを使用する
この記事を参考にViewControllerを実装してください。
ボタンセル(row)の部分を、今回のセグメントコントロールのセルに差し替えてください。
/** セグメントコントロールのセルを作成します。 */ func createSegmentControlRow() -> XLFormRowDescriptor { // タグを設定します。 // 設定値は任意の文字列でかまいませんが、一意の文字列にしてください。 let tag = "segmentControl" // XLFormRowDescriptorTypeをセグメントコントロールとします。 let rowType = XLFormRowDescriptorTypeSelectorSegmentedControl // タイトルは表示できないので空文字列を指定します。 let title = "" // セグメントコントロールのセルを作成します。 let row = XLFormRowDescriptor(tag: tag, rowType: rowType, title: title) // セグメントコントロールに表示する項目を設定します。 // 例ではフォントタイプを設定しています。 var fontTypeList = [String]() fontTypeList.append("標準") fontTypeList.append("斜体") fontTypeList.append("太字") fontTypeList.append("太字斜体") // 選択オプションオブジェクトリストを作成します。 var selectorOptions = [XLFormOptionsObject]() let count = fontTypeList.count for i in 0 ..< count { // 選択オプションオブジェクトは、表示名がフォントタイプ、値は0からの連番にしています。 let title = fontTypeList[i] guard let option = XLFormOptionsObject(value: i, displayText: title) else { continue } selectorOptions.append(option) } row.selectorOptions = selectorOptions // 先頭が選択された状態にします。 row.value = selectorOptions[0] // セグメントコントロールが選択された時の処理を設定する。 // 選択されたセグメントを選択しても、呼び出されないので注意してください。 row.onChangeBlock = { oldValue, newValue, rowDescriptor in // 選択されたセグメントにより処理を行います。 guard let newOptionsObject = newValue as? XLFormOptionsObject else { return } let newFormValue = newOptionsObject.formValue() guard let newIntValue = newFormValue as? Int else { return } switch newIntValue { case 0: // 標準の場合 // 標準が選択された時の処理を記述します。 break case 1: // 斜体の場合 // 斜体が選択された時の処理を記述します。 break case 2: // 太字の場合 // 太字が選択された時の処理を記述します。 break case 3: // 太字斜体の場合 // 太字斜体が選択された時の処理を記述します。 break default: // 上記以外 // 何もしません。 break } } return row }
3. おわりに
PWEditorでは、フォントインポート画面で選択されたフォントタイプをクリアする時に使用しました。
他のコントロールに比べ、セグメントコントロールは使用箇所を選ぶかもしれません。
詳細!Swift 4 iPhoneアプリ開発 入門ノート Swift 4+Xcode 9対応
- 作者: 大重美幸
- 出版社/メーカー: ソーテック社
- メディア: Kindle版
- この商品を含むブログを見る
紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。
私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリやウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。
また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。
EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688