Eurekaは、標準では ImageRow という行はありません。
そこで、EurekaCommunity にあるImageRowをインストールして画像の選択をできるようにする方法を紹介します。
Xcode:9.4.1
Swift:4.1.2
ImageRowを使用するには、Eurekaの他にImageRowのインストールが必要です。
Eurekaのインストール方法については、以下の記事を参照ください。
[ライブラリ] Eurekaの導入と利用〜その1(ライブラリのインストール)
ImageRowはCocoaPodsを使用してインストールします。
podファイルは以下のように編集します。6行目がEurekaのインストール、7行目がImageRowのインストールです。
target 'EurekaSample' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for StickyBoard
pod 'Eureka'
pod 'ImageRow', '~> 3.0'
target 'EurekaSampleTests' do
inherit! :search_paths
# Pods for testing
end
end
podファイルを編集したら、ターミナルを開いてプロジェクトが保存してあるパスへ移動し、「pod install」を実行してください。
ImageRowでは、ユーザーに「写真」「モーメント」「カメラ」の3種類から画像を選択させることが可能です。
もし、カメラからの画像も選択できるようにしたい場合はinfo.plistを編集する必要があります。
Info.plistを開いたら、以下のように「Privacy – Camera Usage Description」を追加してください。
では、コードを見ていきましょう。
import UIKit
import Eureka // (1)必須
import ImageRow // (2)必須
class EurekaViewController: FormViewController {
// 選択されたイメージ格納用
var selectedImg = UIImage()
override func viewDidLoad() {
super.viewDidLoad()
form
+++ Section("設定")
<<< ImageRow() {
$0.title = "画像"
$0.sourceTypes = [.PhotoLibrary, .SavedPhotosAlbum, .Camera] // (3)
$0.value = UIImage(named: "heli") // (4)
$0.clearAction = .yes(style: .destructive) // (5)
$0.onChange { [unowned self] row in // (6)
self.selectedImg = row.value!
}
}
}
}
ImageRowを使用することで、簡単に画像を選択させるための行を追加することができます。この他にもEurekaCommunityには、さまざなプラグインがありますので、ぜひ覗いて見てください。