Skip to content

Commit

Permalink
Merge pull request #18 from sgr-ksmt/release/2.0
Browse files Browse the repository at this point in the history
Release/2.0
  • Loading branch information
sgr-ksmt committed Jun 24, 2017
2 parents 023b44a + 648f1e5 commit c45d6aa
Show file tree
Hide file tree
Showing 11 changed files with 337 additions and 195 deletions.
2 changes: 1 addition & 1 deletion Alertift.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "Alertift"
s.version = "1.3"
s.version = "2.0"
s.summary = "UIAlertControlelr wrapper for Swift."
s.homepage = "https://github.com/sgr-ksmt/Alertift"
# s.screenshots = ""
Expand Down
43 changes: 33 additions & 10 deletions Demo/Demo/ViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,15 @@ class ViewController: UIViewController {
Alertift.alert(title: "Alertift", message: "Alertift is swifty, modern, and awesome UIAlertController wrapper.")
.titleTextColor(.red)
.messageTextColor(.blue)
.action(.default("❀"))
.action(.default("⭐"))
.action(.default("❀")) {
print($0)
}
.action(.default("⭐")) {
print($0)
}
.finally {
print($0)
}
.show(on: self)
}

Expand All @@ -65,12 +72,12 @@ class ViewController: UIViewController {

private func showYesOrNoAlert() {
Alertift.alert(title: "Sample 2",message: "Do you like 🍣?")
.action(.default("Yes"), isPreferred: true) {
.action(.default("Yes"), isPreferred: true) { _ in
Alertift.alert(message: "🍣🍣🍣")
.action(.default("Close"))
.show()
}
.action(.cancel("No")) {
.action(.cancel("No")) { _ in
Alertift.alert(message: "πŸ˜‚πŸ˜‚πŸ˜‚")
.action(.destructive("Close"))
.show()
Expand All @@ -92,21 +99,21 @@ class ViewController: UIViewController {
print("\(index), \(text)")
}
.action(.cancel("Cancel"))
.action(.default("Sign in"), textFieldsHandler: { textFields in
.action(.default("Sign in")) {
let textFields = $0.2
let id = textFields?.first?.text ?? ""
let password = textFields?.last?.text ?? ""
Alertift.alert(title: "Sign in successfully", message: "ID: \(id)\nPassword: \(password)")
.action(.default("OK"))
.show()
})
}
.show()
}
private func showActionSheet(anchorView: UIView) {
Alertift.actionSheet(message: "Which food do you like?", anchorView: anchorView)
.action(.default("🍣"))
.action(.default("🍎"))
.action(.default("πŸ–"))
.action(.default("πŸ…"))
.actions(["🍣", "🍎", "πŸ–", "πŸ…"]) {
print($0)
}
.action(.cancel("None of them"))
.finally { action, index in
if action.style == .cancel {
Expand All @@ -117,6 +124,22 @@ class ViewController: UIViewController {
.show()
}
.show()

// Alertift.actionSheet(message: "Which food do you like?", anchorView: anchorView)
// .action(.default("🍣"))
// .action(.default("🍎"))
// .action(.default("πŸ–"))
// .action(.default("πŸ…"))
// .action(.cancel("None of them"))
// .finally { action, index in
// if action.style == .cancel {
// return
// }
// Alertift.alert(message: "\(index). \(action.title!)")
// .action(.default("OK"))
// .show()
// }
// .show()
}
}

148 changes: 148 additions & 0 deletions Documents/how_to_use.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
# How to use
## Examples

### Simple Alert

```swift
Alertift.alert(title: "Sample 1", message: "Simple alert!")
.action(.default("OK"))
.show(on: self) // show on specified view controller
```

![img2](img2.png)


```swift
Alertift.alert(title: "Confirm", message: "Delete this post?")
.action(.destructive("Delete")) { _ in
// delete post
}
.action(.cancel("Cancel"))
.show()
// Default presented view controller is `UIApplication.shared.keyWindow?.rootViewController`
```

![img1](img1.png)


### Prompt Alert

```swift
Alertift.alert(title: "Sign in", message: "Input your ID and Password")
.textField { textField in
textField.placeholder = "ID"
}
.textField { textField in
textField.placeholder = "Password"
textField.isSecureTextEntry = true
}
.action(.cancel("Cancel"))
.action(.default("Sign in")) { _, _, textFields in
let id = textFields?.first?.text ?? ""
let password = textFields?.last?.text ?? ""
// sign in
}
.show()
```

![img3](img3.png)

### Action Sheet

```swift
Alertift.actionSheet(message: "Which food do you like?")
.actions(["🍣", "🍎", ,"πŸ–", "πŸ…"])
.action(.cancel("None of them"))
.finally { action, index in
if action.style == .cancel {
return
}
Alertift.alert(message: "\(index). \(action.title!)")
.action(.default("OK"))
.show()
}
.show()
```

![img4](img4.png)

#### for iPad
Use `popover(anchorView:)` simply.

```swift
Alertift.actionSheet(message: "Which food do you like?")
.popover(anchorView: button)
.actions(["🍣", "🍎", ,"πŸ–", "πŸ…"])
.action(.cancel("None of them"))
.finally { action, index in
if action.style == .cancel {
return
}
Alertift.alert(message: "\(index). \(action.title!)")
.action(.default("OK"))
.show()
}
.show()
```

or, use `popover(sourceView:SourceRect)`

```swift
Alertift.actionSheet(message: "Which food do you like?")
.popover(sourceView: self.view, sourceRect: button.frame)
.action(.default("🍣"))
.action(.default("🍎"))
.action(.default("πŸ–"))
.action(.default("πŸ…"))
.action(.cancel("None of them"))
.finally { action, index in
if action.style == .cancel {
return
}
Alertift.alert(message: "\(index). \(action.title!)")
.action(.default("OK"))
.show()
}
.show()
```


![img5](img5.png)

### Change colors

```swift
Alertift.alert(title: "Red color title", message: "Message text color is blue")
.titleTextColor(.red)
.messageTextColor(.blue)
.backgroundColor(.lightGray)
.buttonTextColor(.orange)
.action(.default("Orange"))
.show()
```

![img6](img6.png)

```swift
public func backgroundColor(_ color: UIColor?) -> Self
public func buttonTextColor(_ color: UIColor?) -> Self
public func titleTextColor(_ color: UIColor?) -> Self
public func messageTextColor(_ color: UIColor?) -> Self
```

#### Always change color

If you want to change Alertift's alert(action sheet) color always,
set color to `static var`.

```swift
Alertift.Alert.titleTextColor = .red
Alertift.ActionSheet.backgroundColor = .gray
```

```swift
static var backgroundColor: UIColor? { get set }
static var buttonTextColor: UIColor? { get set }
static var titleTextColor: UIColor? { get set }
static var messageTextColor: UIColor? { get set }
```
Loading

0 comments on commit c45d6aa

Please sign in to comment.