ActionSheetPicker-3.0をSwiftで使う


UIActionSheetがiOS 8でdeprecatedになりましたが、この『ActionSheetPicker-3.0』を使うと、それ代替することができます。さらにActionSheetPickerはUIPickerView
としての機能を簡単にカスタマイズできます!


😸 CocoaPodsによるライブラリのインストール

基本的にはブリッジするためのヘッダファイルさえ書けば大丈夫でした。

# プロジェクトフォルダの直下に移動
cd /path/to/project
# Podfileの初期化 (Podfileが存在しない場合のみ)
pod init

Podfileが作成されるので、そこに次のように設定を追記します。

platform :ios, '8.0'
target 'APP_NAME' do
pod 'ActionSheetPicker-3.0'
end
target 'APP_NAME_TEST' do
end

あとは、Podfileに書かれたファイルをインストールします。

# Podfileをインストール
pod install

🐡 ブリッジのためのヘッダファイルの作成/追記

File => New => File...からHeader Fileを選択、
APP_NAME-Bridging-Header.hファイルを追加して、
以下を追加します。

#import "ActionSheetPicker.h"

プロジェクトを選択 => TARGETS => Build Settings => Objective-C Bridging Header$(SRCROOT)/$(PROJECT)/SwiftProject-Bridging-Header.hを追加

スクリーンショット_2015-03-15_20_00_20

🏈 日付 + 時間を選択するPickerの作成

「日付 + 時間を選択するUIPickerView」はこちら。

// 年月日時分を登録するUIPickerViewの表示、データ登録
@IBAction func DatePickerClicked(sender: UIButton) {
var datePicker = ActionSheetDatePicker(title: nil, datePickerMode: UIDatePickerMode.DateAndTime, selectedDate: NSDate(), doneBlock: {
picker, value, index in
println("value = \(value)")
println("index = \(index)")
println("picker = \(picker)")
return
}, cancelBlock: { ActionStringCancelBlock in return }, origin: sender.superview!.superview)
let secondsInWeek: NSTimeInterval = 7 * 24 * 60 * 60;
datePicker.minimumDate = NSDate(timeInterval: -secondsInWeek, sinceDate: NSDate())
datePicker.maximumDate = NSDate(timeInterval: secondsInWeek, sinceDate: NSDate())
datePicker.minuteInterval = 5
datePicker.showActionSheetPicker()
}

作成された「日付 + 時間を選択するUIPickerView」はこちら。

スクリーンショット 2015-03-16 12.28.06

🚜 あとがき

変な話ですが、Objective-Cのときに比べてSwiftには言語を書く楽しさが詰まっているような気がします。
とにかくめっちゃ楽しいです! (単純に仕事の抑圧から解き放たれて好きなことをしているのが楽しいだけかもですがw)

📚 おすすめの書籍