はじめに
Eurekaは、標準では ImageRow という行はありません。
そこで、EurekaCommunity にあるImageRowをインストールして画像の選択をできるようにする方法を紹介します。
環境
Xcode:9.4.1
Swift:4.1.2
ImageRowのインストール
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を使用する
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!
}
}
}
}
- (1) Eurekaを使用するのに必要ですので import してください
- (2) ImageRowを使用するのの必要ですので import してください
- (3) sourceTypes プロパティには、画像選択元を指定します。ここで登録した中から画像が選択できるようになります。
.PhotoLibrary: 写真
.SavedPhotosAlbum: モーメント
.Camera: カメラ - (4) valueプロパティは、初期値として表示する画像を設定します。初期画像が不要な場合は、本プロパティを省略することができます。
- (5) clearActionプロパティは、選んだ画像をクリアするためのボタンを表示します。
- (6) onChange は画像が変更された時に発生するアクションです。ここでは、選択された画像(row.value!)をselectedImg変数に代入しています。
おわりに
ImageRowを使用することで、簡単に画像を選択させるための行を追加することができます。この他にもEurekaCommunityには、さまざなプラグインがありますので、ぜひ覗いて見てください。




コメント