LoginSignup
10

More than 5 years have passed since last update.

[iOS]UIAlertControllerをSwiftyに扱うライブラリを書いた

Last updated at Posted at 2016-05-27

ライブラリ「SwiftyAlert」を作りました。

ライブラリなんか作ってみたいなーと思い、作ってみました。
- github: simorgh3196/SwiftyAlert
CarthageCocoaPods対応しました。いつも使ってるばっかりだったので、こういう風に作っているのかと勉強になりました。
「SwiftyAlert」UIAlertControllerをSwiftyにメソッドチェーンで設定して、表示することができるマイクロライブラリです。
コード量超絶少ないです。
ライブラリ作成に関しては、「Swiftでライブラリを公開する」を参考にさせてもらいました。

使い方

imporatする

*.swift
import SwiftyAlert
  • Alert
*.swift
Alert(title: "Alert", message: "Simple Alert.")
    .addDefault("OK")
    .addCancel()
    .show(self)
  • ActionSheet
*.swift
Alert(title: "ActionSheet", message: "message", style: .ActionSheet)
    .addDefault("Take Photo") { print("take phote") }
    .addDefault("Open Library") { print("open library") }
    .addDestructive("Delete") { print("delete") }
    .addCancel()
    .show(self)
  • with TextField
*.swift
var idField: UITextField?
var passwordField: UITextField?

Alert(title: "Alert", message: "Alert with TextField.")
    .addDefault("Login") {
        print("Try Login.\nID:", idField?.text, "Password:", passwordField?.text)
    }
    .addTextField { textField in
        idField = textField
        textField.placeholder = "ID"
    }
    .addTextField { textField in
        passwordField = textField
        textField.placeholder = "Password"
    }
    .addCancel { print("Cancelled") }
    .show(self) { print("Completion") }

導入方法

CarthageCocoaPodsに対応しています。
どちらも導入済みとします。

Carthage

Cartfileという名前のファイルを作成。
以下を追加。

Cartfile
github "simorgh3196/SwiftyAlert"

上記を記述したらcarthage updateを実行

CocoaPods

pod initを実行。
できたPodfileを編集。
target_nameは自分のものを利用。

Podfile
platform :ios, '8.0'
use_frameworks!

target 'target_name' do
pod "SwiftyAlert", '~>0.1.0'
end

Manual

SwiftyAlert/Alert.swiftを自分のプロジェクトに追加(importは不要)
or
SwiftyAlert.xcodeprojを自分のプロジェクトに追加(import必要)

最後に

是非使ってみてください。
また、初めてのライブラリの公開のため、色々間違ってたり、コードに問題があるかも??しれません。
プルリクやスター待ってます:)

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
10