JLToast is now Toaster

This commit is contained in:
Suyeol Jeon
2016-09-12 03:26:17 +09:00
parent 2691681586
commit a7e77a7461
21 changed files with 235 additions and 438 deletions

View File

@@ -18,7 +18,7 @@
*/
import UIKit
import JLToast
import Toaster
class RootViewController: UIViewController {
@@ -33,9 +33,9 @@ class RootViewController: UIViewController {
}
func showButtonTouchUpInside() {
JLToast.makeText("Basic JLToast").show()
JLToast.makeText("You can set duration. `JLToastDelay.ShortDelay` means 2 seconds.\n" +
"`JLToastDelay.LongDelay` means 3.5 seconds.", duration: JLToastDelay.LongDelay).show()
JLToast.makeText("With delay, JLToast will be shown after delay.", delay: 1, duration: 5).show()
Toast.makeText("Basic Toaster").show()
Toast.makeText("You can set duration. `ToastDelay.ShortDelay` means 2 seconds.\n" +
"`ToastDelay.LongDelay` means 3.5 seconds.", duration: ToastDelay.LongDelay).show()
Toast.makeText("With delay, Toaster will be shown after delay.", delay: 1, duration: 5).show()
}
}

View File

@@ -1,15 +0,0 @@
Pod::Spec.new do |s|
s.name = "JLToast"
s.version = "1.4.2"
s.summary = "Toast UI for Swift - Android-like toast with very simple interface."
s.homepage = "http://github.com/devxoul/JLToast"
s.license = { :type => 'WTFPL', :file => 'LICENSE' }
s.author = { "devxoul" => "devxoul@gmail.com" }
s.source = { :git => "https://github.com/devxoul/JLToast.git",
:tag => "#{s.version}" }
s.platform = :ios, '8.0'
s.source_files = 'JLToast/*.{swift,h}'
s.public_header_files = 'JLToast/JLToast.h'
s.frameworks = 'UIKit', 'Foundation', 'QuartzCore'
s.requires_arc = true
end

View File

@@ -1,33 +0,0 @@
/*
* DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
* Version 2, December 2004
*
* Copyright (C) 2013-2015 Suyeol Jeon <devxoul@gmail.com>
*
* Everyone is permitted to copy and distribute verbatim or modified
* copies of this license document, and changing it is allowed as long
* as the name is changed.
*
* DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
* TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
*
* 0. You just DO WHAT THE FUCK YOU WANT TO.
*
*/
#import <Foundation/Foundation.h>
FOUNDATION_EXPORT double JLToastVersionNumber;
FOUNDATION_EXPORT const unsigned char JLToastVersionString[];
#if __OBJC__
static NSTimeInterval const JLToastShortDelay = 2.0;
static NSTimeInterval const JLToastLongDelay = 3.5;
static NSString * const JLToastViewBackgroundColorAttributeName = @"JLToastViewBackgroundColorAttributeName";
static NSString * const JLToastViewCornerRadiusAttributeName = @"JLToastViewCornerRadiusAttributeName";
static NSString * const JLToastViewTextInsetsAttributeName = @"JLToastViewTextInsetsAttributeName";
static NSString * const JLToastViewTextColorAttributeName = @"JLToastViewTextColorAttributeName";
static NSString * const JLToastViewFontAttributeName = @"JLToastViewFontAttributeName";
static NSString * const JLToastViewPortraitOffsetYAttributeName = @"JLToastViewPortraitOffsetYAttributeName";
static NSString * const JLToastViewLandscapeOffsetYAttributeName = @"JLToastViewLandscapeOffsetYAttributeName";
#endif

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

View File

@@ -1,33 +0,0 @@
//
// JLToastTests.swift
// JLToastTests
//
// Created by on 10/15/15.
// Copyright © 2015 Suyeol Jeon. All rights reserved.
//
import XCTest
@testable import JLToast
class JLToastTests: XCTestCase {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testExample() {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
func testPerformanceExample() {
// This is an example of a performance test case.
}
}

View File

@@ -1,8 +1,8 @@
JLToast - Toast for Swift
Toaster - Toast for Swift
=========================
![Swift 2.0](https://img.shields.io/badge/Swift-2.2-orange.svg)
[![CocoaPods](http://img.shields.io/cocoapods/v/JLToast.svg?style=flat)](http://cocoapods.org/?q=name%3AJLToast%20author%3Adevxoul)
[![CocoaPods](http://img.shields.io/cocoapods/v/Toast.svg?style=flat)](http://cocoapods.org/?q=name%3AToaster%20author%3Adevxoul)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
Android-like toast with very simple interface.
@@ -12,16 +12,15 @@ At a Glance
-----------
```swift
JLToast.makeText("Some text").show()
Toast.makeText("Some text").show()
```
Features
--------
- **Objective-C Compatible**: import `JLToast.h` to use JLToast in Objective-C.
- **Queueing**: centralized toast center manages toast queue.
- **Customizable**: see [Appearance](https://github.com/devxoul/JLToast#appearance) section.
- **Customizable**: see [Appearance](https://github.com/devxoul/Toaster#appearance) section.
Installation
@@ -30,45 +29,28 @@ Installation
- **For iOS 8+ projects with [CocoaPods](https://cocoapods.org):**
```ruby
pod 'JLToast', '~> 1.4'
pod 'Toaster', '~> 1.4'
```
- **For iOS 8+ projects with [Carthage](https://github.com/Carthage/Carthage):**
```
github "devxoul/JLToast" ~> 1.0
github "devxoul/Toaster" ~> 1.0
```
- **For iOS 7 projects:** I recommend you to try [CocoaSeeds](https://github.com/devxoul/CocoaSeeds), which uses source code instead of dynamic frameworks. Sample Seedfile:
```ruby
github 'devxoul/JLToast', '1.4.2', :files => 'JLToast/*.{swift,h}'
github 'devxoul/Toaster', '1.4.2', :files => 'Sources/*.{swift,h}'
```
Objective-C
-----------
JLToast is compatible with Objective-C. What you need to do is to import a auto-generated header file:
```objc
#import <JLToast/JLToast-Swift.h>
```
If you are looking for constants, import `JLToast.h`.
```objc
#import <JLToast/JLToast-Swift.h>
#import <JLToast/JLToast.h> // if you want to use constants
```
Setting Duration and Delay
--------------------------
```swift
JLToast.makeText("Some text", duration: JLToastDelay.LongDelay)
JLToast.makeText("Some text", delay: 1, duration: JLToastDelay.ShortDelay)
Toast.makeText("Some text", duration: ToastDelay.LongDelay)
Toast.makeText("Some text", delay: 1, duration: ToastDelay.ShortDelay)
```
@@ -78,7 +60,7 @@ Removing Toasts
- **Removing toast with reference**:
```swift
let toast = JLToast.makeText("Hello")
let toast = Toast.makeText("Hello")
toast.show()
toast.cancel() // remove toast immediately
```
@@ -86,7 +68,7 @@ Removing Toasts
- **Removing current toast**:
```swift
if let currentToast = JLToastCenter.defaultCenter.currentToast {
if let currentToast = ToastCenter.defaultCenter.currentToast {
currentToast.cancel()
}
```
@@ -94,56 +76,46 @@ Removing Toasts
- **Removing all toasts**:
```swift
JLToastCenter.defaultCenter.cancelAllToasts()
ToastCenter.defaultCenter.cancelAllToasts()
```
Appearance
----------
Since JLToast 1.1.0, you can set default values for appearance attributes. The code below sets default background color to red.
Since Toaster 1.1.0, you can set default values for appearance attributes. The code below sets default background color to red.
> **Note:** It is not recommended to set default values while toasts are queued. It can occur unexpected results.
**Swift**
```swift
JLToastView.setDefaultValue(
ToastView.setDefaultValue(
UIColor.redColor(),
forAttributeName: JLToastViewBackgroundColorAttributeName,
forAttributeName: ToastViewBackgroundColorAttributeName,
userInterfaceIdiom: .Phone
)
```
**Objective-C**
```objc
[JLToastView setDefaultValue:[UIColor redColor]
forAttributeName:JLToastViewBackgroundColorAttributeName
userInterfaceIdiom:UIUserInterfaceIdiomPhone];
```
#### Supported Attributes
| Attribute | Type | Description |
|---|---|---|
| `JLToastViewBackgroundColorAttributeName` | `UIColor` | Background color |
| `JLToastViewCornerRadiusAttributeName` | `NSNumber(CGFloat)` | Corner radius |
| `JLToastViewTextInsetsAttributeName` | `NSValue(UIEdgeInsets)` | Text inset |
| `JLToastViewTextColorAttributeName` | `UIColor` | Text color |
| `JLToastViewFontAttributeName` | `UIFont` | Font |
| `JLToastViewPortraitOffsetYAttributeName` | `NSNumber(CGFloat)` | Vertical offfset from bottom in portrait mode |
|` JLToastViewLandscapeOffsetYAttributeName` | `NSNumber(CGFloat)` | Vertical offfset from bottom in landscape mode |
| `ToastViewBackgroundColorAttributeName` | `UIColor` | Background color |
| `ToastViewCornerRadiusAttributeName` | `NSNumber(CGFloat)` | Corner radius |
| `ToastViewTextInsetsAttributeName` | `NSValue(UIEdgeInsets)` | Text inset |
| `ToastViewTextColorAttributeName` | `UIColor` | Text color |
| `ToastViewFontAttributeName` | `UIFont` | Font |
| `ToastViewPortraitOffsetYAttributeName` | `NSNumber(CGFloat)` | Vertical offfset from bottom in portrait mode |
|` ToastViewLandscapeOffsetYAttributeName` | `NSNumber(CGFloat)` | Vertical offfset from bottom in landscape mode |
Screenshots
-----------
![JLToast Screenshot](https://raw.github.com/Joyfl/JLToast/master/Screenshots/JLToast.png)
![Toaster Screenshot](https://raw.github.com/devxoul/Toaster/master/Screenshots/Toaster.png)
License
-------
JLToast is under [WTFPL](http://www.wtfpl.net/). You can do what the fuck you want with JLToast. See [LICENSE](LICENSE) file for more info.
Toaster is under [WTFPL](http://www.wtfpl.net/). You can do what the fuck you want with Toast. See [LICENSE](LICENSE) file for more info.

View File

Before

Width:  |  Height:  |  Size: 280 KiB

After

Width:  |  Height:  |  Size: 280 KiB

View File

@@ -1,5 +1,5 @@
/*
* JLToast.swift
* Toast.swift
*
* DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
* Version 2, December 2004
@@ -19,14 +19,14 @@
import UIKit
public struct JLToastDelay {
public struct ToastDelay {
public static let ShortDelay: TimeInterval = 2.0
public static let LongDelay: TimeInterval = 3.5
}
@objc public class JLToast: Operation {
@objc public class Toast: Operation {
public var view: JLToastView = JLToastView()
public var view: ToastView = ToastView()
public var text: String? {
get {
@@ -38,7 +38,7 @@ public struct JLToastDelay {
}
public var delay: TimeInterval = 0
public var duration: TimeInterval = JLToastDelay.ShortDelay
public var duration: TimeInterval = ToastDelay.ShortDelay
private var _executing = false
override public var isExecuting: Bool {
@@ -64,16 +64,16 @@ public struct JLToastDelay {
}
}
public class func makeText(_ text: String) -> JLToast {
return JLToast.makeText(text, delay: 0, duration: JLToastDelay.ShortDelay)
public class func makeText(_ text: String) -> Toast {
return Toast.makeText(text, delay: 0, duration: ToastDelay.ShortDelay)
}
public class func makeText(_ text: String, duration: TimeInterval) -> JLToast {
return JLToast.makeText(text, delay: 0, duration: duration)
public class func makeText(_ text: String, duration: TimeInterval) -> Toast {
return Toast.makeText(text, delay: 0, duration: duration)
}
public class func makeText(_ text: String, delay: TimeInterval, duration: TimeInterval) -> JLToast {
let toast = JLToast()
public class func makeText(_ text: String, delay: TimeInterval, duration: TimeInterval) -> Toast {
let toast = Toast()
toast.text = text
toast.delay = delay
toast.duration = duration
@@ -81,7 +81,7 @@ public struct JLToastDelay {
}
public func show() {
JLToastCenter.defaultCenter().addToast(self)
ToastCenter.defaultCenter().addToast(self)
}
override public func start() {
@@ -100,7 +100,7 @@ public struct JLToastDelay {
DispatchQueue.main.async(execute: {
self.view.updateView()
self.view.alpha = 0
JLToastWindow.sharedWindow.addSubview(self.view)
ToastWindow.sharedWindow.addSubview(self.view)
UIView.animate(
withDuration: 0.5,
delay: self.delay,

View File

@@ -1,5 +1,5 @@
/*
* JLToastCenter.swift
* ToastCenter.swift
*
* DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
* Version 2, December 2004
@@ -19,19 +19,19 @@
import UIKit
@objc public class JLToastCenter: NSObject {
@objc public class ToastCenter: NSObject {
private var _queue: OperationQueue!
public var currentToast: JLToast? {
return self._queue.operations.first as? JLToast
public var currentToast: Toast? {
return self._queue.operations.first as? Toast
}
private struct Singletone {
static let defaultCenter = JLToastCenter()
static let defaultCenter = ToastCenter()
}
public class func defaultCenter() -> JLToastCenter {
public class func defaultCenter() -> ToastCenter {
return Singletone.defaultCenter
}
@@ -47,13 +47,13 @@ import UIKit
)
}
public func addToast(_ toast: JLToast) {
public func addToast(_ toast: Toast) {
self._queue.addOperation(toast)
}
func deviceOrientationDidChange(_ sender: AnyObject?) {
if self._queue.operations.count > 0 {
let lastToast: JLToast = _queue.operations[0] as! JLToast
let lastToast: Toast = _queue.operations[0] as! Toast
lastToast.view.updateView()
}
}

View File

@@ -1,5 +1,5 @@
/*
* JLToastView.swift
* ToastView.swift
*
* DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
* Version 2, December 2004
@@ -19,15 +19,15 @@
import UIKit
public let JLToastViewBackgroundColorAttributeName = "JLToastViewBackgroundColorAttributeName"
public let JLToastViewCornerRadiusAttributeName = "JLToastViewCornerRadiusAttributeName"
public let JLToastViewTextInsetsAttributeName = "JLToastViewTextInsetsAttributeName"
public let JLToastViewTextColorAttributeName = "JLToastViewTextColorAttributeName"
public let JLToastViewFontAttributeName = "JLToastViewFontAttributeName"
public let JLToastViewPortraitOffsetYAttributeName = "JLToastViewPortraitOffsetYAttributeName"
public let JLToastViewLandscapeOffsetYAttributeName = "JLToastViewLandscapeOffsetYAttributeName"
public let ToastViewBackgroundColorAttributeName = "ToastViewBackgroundColorAttributeName"
public let ToastViewCornerRadiusAttributeName = "ToastViewCornerRadiusAttributeName"
public let ToastViewTextInsetsAttributeName = "ToastViewTextInsetsAttributeName"
public let ToastViewTextColorAttributeName = "ToastViewTextColorAttributeName"
public let ToastViewFontAttributeName = "ToastViewFontAttributeName"
public let ToastViewPortraitOffsetYAttributeName = "ToastViewPortraitOffsetYAttributeName"
public let ToastViewLandscapeOffsetYAttributeName = "ToastViewLandscapeOffsetYAttributeName"
@objc public class JLToastView: UIView {
@objc public class ToastView: UIView {
public var backgroundView: UIView!
public var textLabel: UILabel!
@@ -43,11 +43,11 @@ public let JLToastViewLandscapeOffsetYAttributeName = "JLToastViewLandscapeOffse
self.backgroundView = UIView()
self.backgroundView.frame = self.bounds
self.backgroundView.backgroundColor = type(of: self).defaultValueForAttributeName(
JLToastViewBackgroundColorAttributeName,
ToastViewBackgroundColorAttributeName,
forUserInterfaceIdiom: userInterfaceIdiom
) as? UIColor
self.backgroundView.layer.cornerRadius = type(of: self).defaultValueForAttributeName(
JLToastViewCornerRadiusAttributeName,
ToastViewCornerRadiusAttributeName,
forUserInterfaceIdiom: userInterfaceIdiom
) as! CGFloat
self.backgroundView.clipsToBounds = true
@@ -56,12 +56,12 @@ public let JLToastViewLandscapeOffsetYAttributeName = "JLToastViewLandscapeOffse
self.textLabel = UILabel()
self.textLabel.frame = self.bounds
self.textLabel.textColor = type(of: self).defaultValueForAttributeName(
JLToastViewTextColorAttributeName,
ToastViewTextColorAttributeName,
forUserInterfaceIdiom: userInterfaceIdiom
) as? UIColor
self.textLabel.backgroundColor = UIColor.clear
self.textLabel.font = type(of: self).defaultValueForAttributeName(
JLToastViewFontAttributeName,
ToastViewFontAttributeName,
forUserInterfaceIdiom: userInterfaceIdiom
) as! UIFont
self.textLabel.numberOfLines = 0
@@ -69,7 +69,7 @@ public let JLToastViewLandscapeOffsetYAttributeName = "JLToastViewLandscapeOffse
self.addSubview(self.textLabel)
self.textInsets = (type(of: self).defaultValueForAttributeName(
JLToastViewTextInsetsAttributeName,
ToastViewTextInsetsAttributeName,
forUserInterfaceIdiom: userInterfaceIdiom
) as! NSValue).uiEdgeInsetsValue
}
@@ -79,7 +79,7 @@ public let JLToastViewLandscapeOffsetYAttributeName = "JLToastViewLandscapeOffse
}
func updateView() {
let containerSize = JLToastWindow.sharedWindow.frame.size
let containerSize = ToastWindow.sharedWindow.frame.size
let constraintSize = CGSize(width: containerSize.width * (280.0 / 320.0), height: CGFloat.greatestFiniteMagnitude)
let textLabelSize = self.textLabel.sizeThatFits(constraintSize)
self.textLabel.frame = CGRect(
@@ -102,16 +102,16 @@ public let JLToastViewLandscapeOffsetYAttributeName = "JLToastViewLandscapeOffse
let userInterfaceIdiom = UIDevice.current.userInterfaceIdiom
let portraitOffsetY = type(of: self).defaultValueForAttributeName(
JLToastViewPortraitOffsetYAttributeName,
ToastViewPortraitOffsetYAttributeName,
forUserInterfaceIdiom: userInterfaceIdiom
) as! CGFloat
let landscapeOffsetY = type(of: self).defaultValueForAttributeName(
JLToastViewLandscapeOffsetYAttributeName,
ToastViewLandscapeOffsetYAttributeName,
forUserInterfaceIdiom: userInterfaceIdiom
) as! CGFloat
let orientation = UIApplication.shared.statusBarOrientation
if orientation.isPortrait || !JLToastWindow.sharedWindow.shouldRotateManually {
if orientation.isPortrait || !ToastWindow.sharedWindow.shouldRotateManually {
width = containerSize.width
height = containerSize.height
y = portraitOffsetY
@@ -140,41 +140,41 @@ public let JLToastViewLandscapeOffsetYAttributeName = "JLToastViewLandscapeOffse
}
public extension JLToastView {
public extension ToastView {
private struct Singleton {
static var defaultValues: [String: [UIUserInterfaceIdiom: Any]] = [
// backgroundView.color
JLToastViewBackgroundColorAttributeName: [
ToastViewBackgroundColorAttributeName: [
.unspecified: UIColor(white: 0, alpha: 0.7)
],
// backgroundView.layer.cornerRadius
JLToastViewCornerRadiusAttributeName: [
ToastViewCornerRadiusAttributeName: [
.unspecified: 5
],
JLToastViewTextInsetsAttributeName: [
ToastViewTextInsetsAttributeName: [
.unspecified: NSValue(uiEdgeInsets: UIEdgeInsets(top: 6, left: 10, bottom: 6, right: 10))
],
// textLabel.textColor
JLToastViewTextColorAttributeName: [
ToastViewTextColorAttributeName: [
.unspecified: UIColor.white
],
// textLabel.font
JLToastViewFontAttributeName: [
ToastViewFontAttributeName: [
.unspecified: UIFont.systemFont(ofSize: 12),
.phone: UIFont.systemFont(ofSize: 12),
.pad: UIFont.systemFont(ofSize: 16),
],
JLToastViewPortraitOffsetYAttributeName: [
ToastViewPortraitOffsetYAttributeName: [
.unspecified: 30,
.phone: 30,
.pad: 60,
],
JLToastViewLandscapeOffsetYAttributeName: [
ToastViewLandscapeOffsetYAttributeName: [
.unspecified: 20,
.phone: 20,
.pad: 40,

View File

@@ -1,5 +1,5 @@
/*
* JLToastView.swift
* ToastView.swift
*
* DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
* Version 2, December 2004
@@ -19,9 +19,9 @@
import UIKit
public class JLToastWindow: UIWindow {
public class ToastWindow: UIWindow {
public static let sharedWindow = JLToastWindow(frame: UIScreen.main.bounds)
public static let sharedWindow = ToastWindow(frame: UIScreen.main.bounds)
/// Will not return `rootViewController` while this value is `true`. Or the rotation will be fucked in iOS 9.
var isStatusBarOrientationChanging = false
@@ -92,9 +92,9 @@ public class JLToastWindow: UIWindow {
fatalError("init(coder:) has not been implemented")
}
/// Bring JLToastWindow to top when another window is being shown.
/// Bring ToastWindow to top when another window is being shown.
func bringWindowToTop(_ notification: Notification) {
if !(notification.object is JLToastWindow) {
if !(notification.object is ToastWindow) {
type(of: self).sharedWindow.isHidden = true
type(of: self).sharedWindow.isHidden = false
}
@@ -134,7 +134,7 @@ public class JLToastWindow: UIWindow {
self.frame.origin = .zero
DispatchQueue.main.async {
JLToastCenter.defaultCenter().currentToast?.view.updateView()
ToastCenter.defaultCenter().currentToast?.view.updateView()
}
}

33
Sources/Toaster.h Normal file
View File

@@ -0,0 +1,33 @@
/*
* DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
* Version 2, December 2004
*
* Copyright (C) 2013-2015 Suyeol Jeon <devxoul@gmail.com>
*
* Everyone is permitted to copy and distribute verbatim or modified
* copies of this license document, and changing it is allowed as long
* as the name is changed.
*
* DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
* TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
*
* 0. You just DO WHAT THE FUCK YOU WANT TO.
*
*/
#import <Foundation/Foundation.h>
FOUNDATION_EXPORT double ToasterVersionNumber;
FOUNDATION_EXPORT const unsigned char ToasterVersionString[];
#if __OBJC__
static NSTimeInterval const ToastShortDelay = 2.0;
static NSTimeInterval const ToastLongDelay = 3.5;
static NSString * const ToastViewBackgroundColorAttributeName = @"ToastViewBackgroundColorAttributeName";
static NSString * const ToastViewCornerRadiusAttributeName = @"ToastViewCornerRadiusAttributeName";
static NSString * const ToastViewTextInsetsAttributeName = @"ToastViewTextInsetsAttributeName";
static NSString * const ToastViewTextColorAttributeName = @"ToastViewTextColorAttributeName";
static NSString * const ToastViewFontAttributeName = @"ToastViewFontAttributeName";
static NSString * const ToastViewPortraitOffsetYAttributeName = @"ToastViewPortraitOffsetYAttributeName";
static NSString * const ToastViewLandscapeOffsetYAttributeName = @"ToastViewLandscapeOffsetYAttributeName";
#endif

14
Toaster.podspec Normal file
View File

@@ -0,0 +1,14 @@
Pod::Spec.new do |s|
s.name = "Toaster"
s.version = "1.4.2"
s.summary = "Toast for Swift"
s.homepage = "http://github.com/devxoul/Toaster"
s.license = { :type => 'WTPFL', :file => 'LICENSE' }
s.author = { "devxoul" => "devxoul@gmail.com" }
s.source = { :git => "https://github.com/devxoul/Toaster.git",
:tag => "#{s.version}" }
s.platform = :ios, '8.0'
s.source_files = 'Toaster/*.{swift,h}'
s.frameworks = 'UIKit', 'Foundation', 'QuartzCore'
s.requires_arc = true
end

View File

@@ -7,53 +7,41 @@
objects = {
/* Begin PBXBuildFile section */
037A2EA91C043C9600257E51 /* JLToastWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 037A2EA81C043C9600257E51 /* JLToastWindow.swift */; };
03A75E2F1BCF2066002E46C4 /* JLToast.h in Headers */ = {isa = PBXBuildFile; fileRef = 03A75E2E1BCF2066002E46C4 /* JLToast.h */; settings = {ATTRIBUTES = (Public, ); }; };
03A75E361BCF2066002E46C4 /* JLToast.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03A75E2B1BCF2066002E46C4 /* JLToast.framework */; };
03A75E3B1BCF2066002E46C4 /* JLToastTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03A75E3A1BCF2066002E46C4 /* JLToastTests.swift */; };
03A75E481BCF2098002E46C4 /* JLToast.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03A75E451BCF2098002E46C4 /* JLToast.swift */; };
03A75E491BCF2098002E46C4 /* JLToastCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03A75E461BCF2098002E46C4 /* JLToastCenter.swift */; };
03A75E4A1BCF2098002E46C4 /* JLToastView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03A75E471BCF2098002E46C4 /* JLToastView.swift */; };
03A75E521BCF20D4002E46C4 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03A75E511BCF20D4002E46C4 /* AppDelegate.swift */; };
03A75E591BCF20D4002E46C4 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 03A75E581BCF20D4002E46C4 /* Assets.xcassets */; };
03A75E5C1BCF20D4002E46C4 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 03A75E5A1BCF20D4002E46C4 /* LaunchScreen.storyboard */; };
03A75E621BCF2102002E46C4 /* RootViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03A75E611BCF2102002E46C4 /* RootViewController.swift */; };
0306DBA01D85D626007AE314 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0306DB9A1D85D626007AE314 /* Assets.xcassets */; };
0306DBA11D85D626007AE314 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0306DB9B1D85D626007AE314 /* LaunchScreen.storyboard */; };
0306DBAA1D85D62A007AE314 /* Toaster.h in Headers */ = {isa = PBXBuildFile; fileRef = 0306DBA51D85D62A007AE314 /* Toaster.h */; settings = {ATTRIBUTES = (Public, ); }; };
0306DBAB1D85D62A007AE314 /* Toast.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0306DBA61D85D62A007AE314 /* Toast.swift */; };
0306DBAC1D85D62A007AE314 /* ToastCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0306DBA71D85D62A007AE314 /* ToastCenter.swift */; };
0306DBAD1D85D62A007AE314 /* ToastView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0306DBA81D85D62A007AE314 /* ToastView.swift */; };
0306DBAE1D85D62A007AE314 /* ToastWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0306DBA91D85D62A007AE314 /* ToastWindow.swift */; };
0397CD2D1D85D6920077D82F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0306DB991D85D626007AE314 /* AppDelegate.swift */; };
0397CD2E1D85D6930077D82F /* RootViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0306DB9E1D85D626007AE314 /* RootViewController.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
03A75E371BCF2066002E46C4 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 03A75E221BCF2066002E46C4 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 03A75E2A1BCF2066002E46C4;
remoteInfo = JLToast;
};
03A75E631BCF216A002E46C4 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 03A75E221BCF2066002E46C4 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 03A75E2A1BCF2066002E46C4;
remoteInfo = JLToast;
remoteInfo = Toaster;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
037A2EA81C043C9600257E51 /* JLToastWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JLToastWindow.swift; sourceTree = "<group>"; };
03A75E2B1BCF2066002E46C4 /* JLToast.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JLToast.framework; sourceTree = BUILT_PRODUCTS_DIR; };
03A75E2E1BCF2066002E46C4 /* JLToast.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JLToast.h; sourceTree = "<group>"; };
03A75E301BCF2066002E46C4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
03A75E351BCF2066002E46C4 /* JLToastTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JLToastTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
03A75E3A1BCF2066002E46C4 /* JLToastTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JLToastTests.swift; sourceTree = "<group>"; };
03A75E3C1BCF2066002E46C4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
03A75E451BCF2098002E46C4 /* JLToast.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JLToast.swift; sourceTree = "<group>"; };
03A75E461BCF2098002E46C4 /* JLToastCenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JLToastCenter.swift; sourceTree = "<group>"; };
03A75E471BCF2098002E46C4 /* JLToastView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JLToastView.swift; sourceTree = "<group>"; };
03A75E4F1BCF20D4002E46C4 /* JLToastDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JLToastDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
03A75E511BCF20D4002E46C4 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
03A75E581BCF20D4002E46C4 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
03A75E5B1BCF20D4002E46C4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
03A75E5D1BCF20D4002E46C4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
03A75E611BCF2102002E46C4 /* RootViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RootViewController.swift; sourceTree = "<group>"; };
0306DB991D85D626007AE314 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
0306DB9A1D85D626007AE314 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
0306DB9C1D85D626007AE314 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
0306DB9D1D85D626007AE314 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
0306DB9E1D85D626007AE314 /* RootViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RootViewController.swift; sourceTree = "<group>"; };
0306DBA51D85D62A007AE314 /* Toaster.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Toaster.h; sourceTree = "<group>"; };
0306DBA61D85D62A007AE314 /* Toast.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Toast.swift; sourceTree = "<group>"; };
0306DBA71D85D62A007AE314 /* ToastCenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToastCenter.swift; sourceTree = "<group>"; };
0306DBA81D85D62A007AE314 /* ToastView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToastView.swift; sourceTree = "<group>"; };
0306DBA91D85D62A007AE314 /* ToastWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToastWindow.swift; sourceTree = "<group>"; };
0306DBB01D85D62E007AE314 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
03A75E2B1BCF2066002E46C4 /* Toaster.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Toaster.framework; sourceTree = BUILT_PRODUCTS_DIR; };
03A75E4F1BCF20D4002E46C4 /* ToasterDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ToasterDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -64,14 +52,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
03A75E321BCF2066002E46C4 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
03A75E361BCF2066002E46C4 /* JLToast.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
03A75E4C1BCF20D4002E46C4 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -82,12 +62,44 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
0306DB981D85D626007AE314 /* Demo */ = {
isa = PBXGroup;
children = (
0306DB991D85D626007AE314 /* AppDelegate.swift */,
0306DB9E1D85D626007AE314 /* RootViewController.swift */,
0306DB9A1D85D626007AE314 /* Assets.xcassets */,
0306DB9B1D85D626007AE314 /* LaunchScreen.storyboard */,
0306DB9D1D85D626007AE314 /* Info.plist */,
);
path = Demo;
sourceTree = "<group>";
};
0306DBA41D85D62A007AE314 /* Sources */ = {
isa = PBXGroup;
children = (
0306DBA51D85D62A007AE314 /* Toaster.h */,
0306DBA61D85D62A007AE314 /* Toast.swift */,
0306DBA71D85D62A007AE314 /* ToastCenter.swift */,
0306DBA81D85D62A007AE314 /* ToastView.swift */,
0306DBA91D85D62A007AE314 /* ToastWindow.swift */,
);
path = Sources;
sourceTree = "<group>";
};
0306DBAF1D85D62E007AE314 /* Supporting Files */ = {
isa = PBXGroup;
children = (
0306DBB01D85D62E007AE314 /* Info.plist */,
);
path = "Supporting Files";
sourceTree = "<group>";
};
03A75E211BCF2066002E46C4 = {
isa = PBXGroup;
children = (
03A75E2D1BCF2066002E46C4 /* JLToast */,
03A75E391BCF2066002E46C4 /* JLToastTests */,
03A75E501BCF20D4002E46C4 /* JLToastDemo */,
0306DBA41D85D62A007AE314 /* Sources */,
0306DBAF1D85D62E007AE314 /* Supporting Files */,
0306DB981D85D626007AE314 /* Demo */,
03A75E2C1BCF2066002E46C4 /* Products */,
);
sourceTree = "<group>";
@@ -95,47 +107,12 @@
03A75E2C1BCF2066002E46C4 /* Products */ = {
isa = PBXGroup;
children = (
03A75E2B1BCF2066002E46C4 /* JLToast.framework */,
03A75E351BCF2066002E46C4 /* JLToastTests.xctest */,
03A75E4F1BCF20D4002E46C4 /* JLToastDemo.app */,
03A75E2B1BCF2066002E46C4 /* Toaster.framework */,
03A75E4F1BCF20D4002E46C4 /* ToasterDemo.app */,
);
name = Products;
sourceTree = "<group>";
};
03A75E2D1BCF2066002E46C4 /* JLToast */ = {
isa = PBXGroup;
children = (
03A75E2E1BCF2066002E46C4 /* JLToast.h */,
03A75E451BCF2098002E46C4 /* JLToast.swift */,
03A75E461BCF2098002E46C4 /* JLToastCenter.swift */,
03A75E471BCF2098002E46C4 /* JLToastView.swift */,
037A2EA81C043C9600257E51 /* JLToastWindow.swift */,
03A75E301BCF2066002E46C4 /* Info.plist */,
);
path = JLToast;
sourceTree = "<group>";
};
03A75E391BCF2066002E46C4 /* JLToastTests */ = {
isa = PBXGroup;
children = (
03A75E3A1BCF2066002E46C4 /* JLToastTests.swift */,
03A75E3C1BCF2066002E46C4 /* Info.plist */,
);
path = JLToastTests;
sourceTree = "<group>";
};
03A75E501BCF20D4002E46C4 /* JLToastDemo */ = {
isa = PBXGroup;
children = (
03A75E511BCF20D4002E46C4 /* AppDelegate.swift */,
03A75E611BCF2102002E46C4 /* RootViewController.swift */,
03A75E581BCF20D4002E46C4 /* Assets.xcassets */,
03A75E5A1BCF20D4002E46C4 /* LaunchScreen.storyboard */,
03A75E5D1BCF20D4002E46C4 /* Info.plist */,
);
path = JLToastDemo;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
@@ -143,16 +120,16 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
03A75E2F1BCF2066002E46C4 /* JLToast.h in Headers */,
0306DBAA1D85D62A007AE314 /* Toaster.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
03A75E2A1BCF2066002E46C4 /* JLToast */ = {
03A75E2A1BCF2066002E46C4 /* Toaster */ = {
isa = PBXNativeTarget;
buildConfigurationList = 03A75E3F1BCF2066002E46C4 /* Build configuration list for PBXNativeTarget "JLToast" */;
buildConfigurationList = 03A75E3F1BCF2066002E46C4 /* Build configuration list for PBXNativeTarget "Toaster" */;
buildPhases = (
03A75E261BCF2066002E46C4 /* Sources */,
03A75E271BCF2066002E46C4 /* Frameworks */,
@@ -163,32 +140,14 @@
);
dependencies = (
);
name = JLToast;
productName = JLToast;
productReference = 03A75E2B1BCF2066002E46C4 /* JLToast.framework */;
name = Toaster;
productName = Toaster;
productReference = 03A75E2B1BCF2066002E46C4 /* Toaster.framework */;
productType = "com.apple.product-type.framework";
};
03A75E341BCF2066002E46C4 /* JLToastTests */ = {
03A75E4E1BCF20D4002E46C4 /* ToasterDemo */ = {
isa = PBXNativeTarget;
buildConfigurationList = 03A75E421BCF2066002E46C4 /* Build configuration list for PBXNativeTarget "JLToastTests" */;
buildPhases = (
03A75E311BCF2066002E46C4 /* Sources */,
03A75E321BCF2066002E46C4 /* Frameworks */,
03A75E331BCF2066002E46C4 /* Resources */,
);
buildRules = (
);
dependencies = (
03A75E381BCF2066002E46C4 /* PBXTargetDependency */,
);
name = JLToastTests;
productName = JLToastTests;
productReference = 03A75E351BCF2066002E46C4 /* JLToastTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
03A75E4E1BCF20D4002E46C4 /* JLToastDemo */ = {
isa = PBXNativeTarget;
buildConfigurationList = 03A75E5E1BCF20D4002E46C4 /* Build configuration list for PBXNativeTarget "JLToastDemo" */;
buildConfigurationList = 03A75E5E1BCF20D4002E46C4 /* Build configuration list for PBXNativeTarget "ToasterDemo" */;
buildPhases = (
03A75E4B1BCF20D4002E46C4 /* Sources */,
03A75E4C1BCF20D4002E46C4 /* Frameworks */,
@@ -199,9 +158,9 @@
dependencies = (
03A75E641BCF216A002E46C4 /* PBXTargetDependency */,
);
name = JLToastDemo;
productName = JLToastDemo;
productReference = 03A75E4F1BCF20D4002E46C4 /* JLToastDemo.app */;
name = ToasterDemo;
productName = ToasterDemo;
productReference = 03A75E4F1BCF20D4002E46C4 /* ToasterDemo.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
@@ -218,17 +177,13 @@
CreatedOnToolsVersion = 7.0.1;
LastSwiftMigration = 0800;
};
03A75E341BCF2066002E46C4 = {
CreatedOnToolsVersion = 7.0.1;
LastSwiftMigration = 0800;
};
03A75E4E1BCF20D4002E46C4 = {
CreatedOnToolsVersion = 7.0.1;
LastSwiftMigration = 0800;
};
};
};
buildConfigurationList = 03A75E251BCF2066002E46C4 /* Build configuration list for PBXProject "JLToast" */;
buildConfigurationList = 03A75E251BCF2066002E46C4 /* Build configuration list for PBXProject "Toaster" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
@@ -241,9 +196,8 @@
projectDirPath = "";
projectRoot = "";
targets = (
03A75E2A1BCF2066002E46C4 /* JLToast */,
03A75E341BCF2066002E46C4 /* JLToastTests */,
03A75E4E1BCF20D4002E46C4 /* JLToastDemo */,
03A75E2A1BCF2066002E46C4 /* Toaster */,
03A75E4E1BCF20D4002E46C4 /* ToasterDemo */,
);
};
/* End PBXProject section */
@@ -253,13 +207,8 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
03A75E331BCF2066002E46C4 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
0306DBA01D85D626007AE314 /* Assets.xcassets in Resources */,
0306DBA11D85D626007AE314 /* LaunchScreen.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -267,8 +216,6 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
03A75E5C1BCF20D4002E46C4 /* LaunchScreen.storyboard in Resources */,
03A75E591BCF20D4002E46C4 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -279,18 +226,10 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
03A75E491BCF2098002E46C4 /* JLToastCenter.swift in Sources */,
03A75E4A1BCF2098002E46C4 /* JLToastView.swift in Sources */,
03A75E481BCF2098002E46C4 /* JLToast.swift in Sources */,
037A2EA91C043C9600257E51 /* JLToastWindow.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
03A75E311BCF2066002E46C4 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
03A75E3B1BCF2066002E46C4 /* JLToastTests.swift in Sources */,
0306DBAC1D85D62A007AE314 /* ToastCenter.swift in Sources */,
0306DBAE1D85D62A007AE314 /* ToastWindow.swift in Sources */,
0306DBAB1D85D62A007AE314 /* Toast.swift in Sources */,
0306DBAD1D85D62A007AE314 /* ToastView.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -298,31 +237,26 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
03A75E521BCF20D4002E46C4 /* AppDelegate.swift in Sources */,
03A75E621BCF2102002E46C4 /* RootViewController.swift in Sources */,
0397CD2D1D85D6920077D82F /* AppDelegate.swift in Sources */,
0397CD2E1D85D6930077D82F /* RootViewController.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
03A75E381BCF2066002E46C4 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 03A75E2A1BCF2066002E46C4 /* JLToast */;
targetProxy = 03A75E371BCF2066002E46C4 /* PBXContainerItemProxy */;
};
03A75E641BCF216A002E46C4 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 03A75E2A1BCF2066002E46C4 /* JLToast */;
target = 03A75E2A1BCF2066002E46C4 /* Toaster */;
targetProxy = 03A75E631BCF216A002E46C4 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
03A75E5A1BCF20D4002E46C4 /* LaunchScreen.storyboard */ = {
0306DB9B1D85D626007AE314 /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
03A75E5B1BCF20D4002E46C4 /* Base */,
0306DB9C1D85D626007AE314 /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
@@ -427,11 +361,11 @@
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = JLToast/Info.plist;
INFOPLIST_FILE = "Supporting Files/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = kr.xoul.JLToast;
PRODUCT_BUNDLE_IDENTIFIER = kr.xoul.Toaster;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -447,11 +381,11 @@
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = JLToast/Info.plist;
INFOPLIST_FILE = "Supporting Files/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = kr.xoul.JLToast;
PRODUCT_BUNDLE_IDENTIFIER = kr.xoul.Toaster;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
@@ -459,37 +393,14 @@
};
name = Release;
};
03A75E431BCF2066002E46C4 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
INFOPLIST_FILE = JLToastTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = kr.xoul.JLToastTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
};
name = Debug;
};
03A75E441BCF2066002E46C4 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
INFOPLIST_FILE = JLToastTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = kr.xoul.JLToastTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 3.0;
};
name = Release;
};
03A75E5F1BCF20D4002E46C4 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = JLToastDemo/Info.plist;
INFOPLIST_FILE = "$(SRCROOT)/Demo/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = kr.xoul.JLToastDemo;
PRODUCT_BUNDLE_IDENTIFIER = kr.xoul.ToasterDemo;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
};
@@ -499,10 +410,10 @@
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = JLToastDemo/Info.plist;
INFOPLIST_FILE = "$(SRCROOT)/Demo/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = kr.xoul.JLToastDemo;
PRODUCT_BUNDLE_IDENTIFIER = kr.xoul.ToasterDemo;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 3.0;
@@ -512,7 +423,7 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
03A75E251BCF2066002E46C4 /* Build configuration list for PBXProject "JLToast" */ = {
03A75E251BCF2066002E46C4 /* Build configuration list for PBXProject "Toaster" */ = {
isa = XCConfigurationList;
buildConfigurations = (
03A75E3D1BCF2066002E46C4 /* Debug */,
@@ -521,7 +432,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
03A75E3F1BCF2066002E46C4 /* Build configuration list for PBXNativeTarget "JLToast" */ = {
03A75E3F1BCF2066002E46C4 /* Build configuration list for PBXNativeTarget "Toaster" */ = {
isa = XCConfigurationList;
buildConfigurations = (
03A75E401BCF2066002E46C4 /* Debug */,
@@ -530,16 +441,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
03A75E421BCF2066002E46C4 /* Build configuration list for PBXNativeTarget "JLToastTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
03A75E431BCF2066002E46C4 /* Debug */,
03A75E441BCF2066002E46C4 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
03A75E5E1BCF20D4002E46C4 /* Build configuration list for PBXNativeTarget "JLToastDemo" */ = {
03A75E5E1BCF20D4002E46C4 /* Build configuration list for PBXNativeTarget "ToasterDemo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
03A75E5F1BCF20D4002E46C4 /* Debug */,

View File

@@ -2,6 +2,6 @@
<Workspace
version = "1.0">
<FileRef
location = "self:JLToast.xcodeproj">
location = "self:/Users/xoul/workspace/JLToast/Toaster.xcodeproj">
</FileRef>
</Workspace>

View File

@@ -15,9 +15,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "03A75E2A1BCF2066002E46C4"
BuildableName = "JLToast.framework"
BlueprintName = "JLToast"
ReferencedContainer = "container:JLToast.xcodeproj">
BuildableName = "Toaster.framework"
BlueprintName = "Toaster"
ReferencedContainer = "container:Toaster.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@@ -28,26 +28,7 @@
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "03A75E341BCF2066002E46C4"
BuildableName = "JLToastTests.xctest"
BlueprintName = "JLToastTests"
ReferencedContainer = "container:JLToast.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "03A75E2A1BCF2066002E46C4"
BuildableName = "JLToast.framework"
BlueprintName = "JLToast"
ReferencedContainer = "container:JLToast.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
@@ -65,9 +46,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "03A75E2A1BCF2066002E46C4"
BuildableName = "JLToast.framework"
BlueprintName = "JLToast"
ReferencedContainer = "container:JLToast.xcodeproj">
BuildableName = "Toaster.framework"
BlueprintName = "Toaster"
ReferencedContainer = "container:Toaster.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
@@ -83,9 +64,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "03A75E2A1BCF2066002E46C4"
BuildableName = "JLToast.framework"
BlueprintName = "JLToast"
ReferencedContainer = "container:JLToast.xcodeproj">
BuildableName = "Toaster.framework"
BlueprintName = "Toaster"
ReferencedContainer = "container:Toaster.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>