Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cb471b2295 | |||
| 0ae093ea75 | |||
| 7bec499be2 | |||
| 74f93c36d5 | |||
| 4deca2d95b | |||
| e15d420969 | |||
| e08f300ebe | |||
| 643469a4b4 | |||
| 2f8f77fb5c | |||
| 2f8eb0632e | |||
| f494d7f185 | |||
| 4f8b51b5bc | |||
| 79537b624f | |||
| 3271e28008 | |||
| 01fdcfd333 | |||
| c0c3d33058 | |||
| 9bae1297b2 | |||
| 13d845634a | |||
| 226b67b654 | |||
| d3f4abfee8 | |||
| 3edf6223f7 |
+1
-1
@@ -1 +1 @@
|
||||
4.0
|
||||
4.2
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
// swift-tools-version:5.1
|
||||
//
|
||||
// Package.swift
|
||||
//
|
||||
// Copyright (c) Ramotion Inc. (https://www.ramotion.com/)
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
|
||||
import PackageDescription
|
||||
|
||||
|
||||
let package = Package(
|
||||
name: "PreviewTransition",
|
||||
platforms: [
|
||||
.iOS(.v9)
|
||||
],
|
||||
products: [
|
||||
.library(name: "PreviewTransition",
|
||||
targets: ["PreviewTransition"]),
|
||||
],
|
||||
targets: [
|
||||
.target(name: "PreviewTransition",
|
||||
path: "PreviewTransition")
|
||||
],
|
||||
swiftLanguageVersions: [.v5]
|
||||
)
|
||||
@@ -1,6 +1,6 @@
|
||||
Pod::Spec.new do |s|
|
||||
s.name = 'PreviewTransition'
|
||||
s.version = '3.0.1'
|
||||
s.version = '4.1.0'
|
||||
s.summary = 'Transition animation'
|
||||
s.license = 'MIT'
|
||||
s.homepage = 'https://github.com/Ramotion/preview-transition'
|
||||
|
||||
@@ -85,7 +85,7 @@ extension PTDetailViewController {
|
||||
imageView.image = image
|
||||
imageView.frame = view.bounds
|
||||
imageView.autoresizingMask = [.flexibleHeight, .flexibleWidth]
|
||||
imageView.contentMode = UIViewContentMode.scaleAspectFill
|
||||
imageView.contentMode = UIView.ContentMode.scaleAspectFill
|
||||
view.insertSubview(imageView, at: 0)
|
||||
|
||||
return imageView
|
||||
@@ -97,7 +97,7 @@ extension PTDetailViewController {
|
||||
navBar.translatesAutoresizingMaskIntoConstraints = false
|
||||
view.addSubview(navBar)
|
||||
|
||||
for attributes: NSLayoutAttribute in [.left, .right, .top] {
|
||||
for attributes: NSLayoutConstraint.Attribute in [.left, .right, .top] {
|
||||
(view, navBar) >>>- {
|
||||
$0.attribute = attributes
|
||||
return
|
||||
|
||||
@@ -98,7 +98,7 @@ open class ParallaxCell: UITableViewCell {
|
||||
|
||||
- returns: an initialized UITableViewCell object or nil if the object could not be created.
|
||||
*/
|
||||
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
|
||||
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
|
||||
super.init(style: style, reuseIdentifier: reuseIdentifier)
|
||||
commonInit()
|
||||
}
|
||||
@@ -118,7 +118,7 @@ extension ParallaxCell {
|
||||
|
||||
// add constraints
|
||||
if let bgSuperView = backgroundImageView.superview {
|
||||
for attribute: NSLayoutAttribute in [.leading, .trailing] {
|
||||
for attribute: NSLayoutConstraint.Attribute in [.leading, .trailing] {
|
||||
(bgSuperView, backgroundImageView) >>>- {
|
||||
$0.attribute = attribute
|
||||
return
|
||||
@@ -141,7 +141,7 @@ extension ParallaxCell {
|
||||
|
||||
// create title label
|
||||
let titleLabel = createTitleLable()
|
||||
for attribute: NSLayoutAttribute in [.left, .right] {
|
||||
for attribute: NSLayoutConstraint.Attribute in [.left, .right] {
|
||||
(contentView, titleLabel) >>>- {
|
||||
$0.attribute = attribute
|
||||
return
|
||||
@@ -179,7 +179,7 @@ public extension ParallaxCell {
|
||||
- parameter image: The image object which set to the backgroundImageView
|
||||
- parameter title: The text to be displayed in the Cell
|
||||
*/
|
||||
public func setImage(_ image: UIImage, title: String) {
|
||||
func setImage(_ image: UIImage, title: String) {
|
||||
bgImage?.image = image
|
||||
parallaxTitle?.text = title
|
||||
}
|
||||
@@ -219,7 +219,7 @@ extension ParallaxCell {
|
||||
let cellY = frame.origin.y - offsetY + frame.size.height / 2.0 + offsetY - tableView.frame.size.height / 2.0
|
||||
let cellFrame = CGRect(x: 0, y: cellY, width: tableView.frame.size.width, height: tableView.frame.size.height)
|
||||
frame = cellFrame
|
||||
superview.sendSubview(toBack: self)
|
||||
superview.sendSubviewToBack(self)
|
||||
|
||||
// animation
|
||||
bgImageHeight.constant = cellFrame.height
|
||||
@@ -231,7 +231,7 @@ extension ParallaxCell {
|
||||
func closeCell(_ duration: Double, tableView _: UITableView, completion: @escaping () -> Void) {
|
||||
bgImageY?.constant = closedBgImageYConstant
|
||||
bgImageHeight?.constant = closedHeight
|
||||
UIView.animate(withDuration: duration, delay: 0, usingSpringWithDamping: damping, initialSpringVelocity: 0, options: UIViewAnimationOptions(), animations: { [weak self] () in
|
||||
UIView.animate(withDuration: duration, delay: 0, usingSpringWithDamping: damping, initialSpringVelocity: 0, options: UIView.AnimationOptions(), animations: { [weak self] () in
|
||||
guard let `self` = self else { return }
|
||||
self.bgImage?.superview?.layoutIfNeeded()
|
||||
self.center = CGPoint(x: self.center.x, y: self.closedYPosition)
|
||||
@@ -261,8 +261,8 @@ extension ParallaxCell {
|
||||
center.y = closedYPosition - dy
|
||||
}
|
||||
|
||||
superview?.bringSubview(toFront: self)
|
||||
UIView.animate(withDuration: duration, delay: 0, usingSpringWithDamping: damping, initialSpringVelocity: 0, options: UIViewAnimationOptions(), animations: { () -> Void in
|
||||
superview?.bringSubviewToFront(self)
|
||||
UIView.animate(withDuration: duration, delay: 0, usingSpringWithDamping: damping, initialSpringVelocity: 0, options: UIView.AnimationOptions(), animations: { () -> Void in
|
||||
self.center.y = self.center.y + dy
|
||||
}, completion: nil)
|
||||
}
|
||||
@@ -278,7 +278,7 @@ extension ParallaxCell {
|
||||
|
||||
fileprivate func moveToCenter(_ duration: Double, offset: CGFloat) {
|
||||
bgImageY?.constant = 0
|
||||
UIView.animate(withDuration: duration, delay: 0, usingSpringWithDamping: 0.78, initialSpringVelocity: 0, options: UIViewAnimationOptions(), animations: { () -> Void in
|
||||
UIView.animate(withDuration: duration, delay: 0, usingSpringWithDamping: 0.78, initialSpringVelocity: 0, options: UIView.AnimationOptions(), animations: { () -> Void in
|
||||
self.frame.origin.y = offset
|
||||
self.bgImage?.superview?.layoutIfNeeded()
|
||||
}, completion: nil)
|
||||
@@ -320,7 +320,7 @@ extension ParallaxCell {
|
||||
delay: 0,
|
||||
usingSpringWithDamping: damping * 2.0,
|
||||
initialSpringVelocity: 0,
|
||||
options: UIViewAnimationOptions(),
|
||||
options: UIView.AnimationOptions(),
|
||||
animations: { () -> Void in
|
||||
foregroundView.superview?.layoutIfNeeded()
|
||||
}, completion: nil)
|
||||
@@ -338,7 +338,7 @@ extension ParallaxCell {
|
||||
container.backgroundColor = .clear
|
||||
container.clipsToBounds = true
|
||||
contentView.addSubview(container)
|
||||
for attribute: NSLayoutAttribute in [.left, .right, .top, .bottom] {
|
||||
for attribute: NSLayoutConstraint.Attribute in [.left, .right, .top, .bottom] {
|
||||
(contentView, container) >>>- {
|
||||
$0.attribute = attribute
|
||||
return
|
||||
@@ -358,11 +358,11 @@ extension ParallaxCell {
|
||||
label.backgroundColor = .clear
|
||||
label.translatesAutoresizingMaskIntoConstraints = false
|
||||
label.textAlignment = .center
|
||||
if case let font as UIFont = UINavigationBar.appearance().titleTextAttributes?[NSAttributedStringKey.font] {
|
||||
if case let font as UIFont = UINavigationBar.appearance().titleTextAttributes?[NSAttributedString.Key.font] {
|
||||
label.font = font
|
||||
}
|
||||
|
||||
if case let textColor as UIColor = UINavigationBar.appearance().titleTextAttributes?[NSAttributedStringKey.foregroundColor] {
|
||||
if case let textColor as UIColor = UINavigationBar.appearance().titleTextAttributes?[NSAttributedString.Key.foregroundColor] {
|
||||
label.textColor = textColor
|
||||
}
|
||||
contentView.addSubview(label)
|
||||
@@ -387,7 +387,7 @@ extension ParallaxCell {
|
||||
contentView.insertSubview(foregroundView, aboveSubview: bgImage)
|
||||
|
||||
// add constraints
|
||||
for attribute: NSLayoutAttribute in [.left, .right, .top] {
|
||||
for attribute: NSLayoutConstraint.Attribute in [.left, .right, .top] {
|
||||
(contentView, foregroundView) >>>- {
|
||||
$0.attribute = attribute
|
||||
return
|
||||
@@ -403,13 +403,13 @@ extension ParallaxCell {
|
||||
}
|
||||
|
||||
// return bottom constraint
|
||||
fileprivate func createSeparator(_ color: UIColor, height: CGFloat, verticalAttribure: NSLayoutAttribute, verticalConstant: CGFloat) -> UIView {
|
||||
fileprivate func createSeparator(_ color: UIColor, height: CGFloat, verticalAttribure: NSLayoutConstraint.Attribute, verticalConstant: CGFloat) -> UIView {
|
||||
let separator = UIView(frame: CGRect.zero)
|
||||
separator.backgroundColor = color
|
||||
separator.translatesAutoresizingMaskIntoConstraints = false
|
||||
contentView.addSubview(separator)
|
||||
|
||||
for attribute: NSLayoutAttribute in [.leading, .trailing] {
|
||||
for attribute: NSLayoutConstraint.Attribute in [.leading, .trailing] {
|
||||
(contentView, separator) >>>- {
|
||||
$0.attribute = attribute
|
||||
return
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
import UIKit
|
||||
|
||||
struct ConstraintInfo {
|
||||
var attribute: NSLayoutAttribute = .left
|
||||
var secondAttribute: NSLayoutAttribute = .notAnAttribute
|
||||
var attribute: NSLayoutConstraint.Attribute = .left
|
||||
var secondAttribute: NSLayoutConstraint.Attribute = .notAnAttribute
|
||||
var constant: CGFloat = 0
|
||||
var identifier: String?
|
||||
var relation: NSLayoutRelation = .equal
|
||||
var relation: NSLayoutConstraint.Relation = .equal
|
||||
}
|
||||
|
||||
precedencegroup constOp {
|
||||
|
||||
@@ -42,7 +42,7 @@ extension Moving where Self: UIView {
|
||||
delay: 0,
|
||||
usingSpringWithDamping: 0.78,
|
||||
initialSpringVelocity: 0,
|
||||
options: UIViewAnimationOptions(),
|
||||
options: UIView.AnimationOptions(),
|
||||
animations: { [weak self] () -> Void in
|
||||
guard let `self` = self else { return }
|
||||
var toYPosition = self.defaultYPosition
|
||||
@@ -78,7 +78,7 @@ internal class MovingView: UIView {
|
||||
delay: 0,
|
||||
usingSpringWithDamping: 0.78,
|
||||
initialSpringVelocity: 0,
|
||||
options: UIViewAnimationOptions(),
|
||||
options: UIView.AnimationOptions(),
|
||||
animations: { () -> Void in
|
||||
self.frame.origin.y = yPosition
|
||||
}, completion: completion)
|
||||
|
||||
@@ -51,7 +51,7 @@ public extension PTTableViewController {
|
||||
|
||||
- parameter viewController: The view controller to push onto the stack.
|
||||
*/
|
||||
public func pushViewController(_ viewController: PTDetailViewController) {
|
||||
func pushViewController(_ viewController: PTDetailViewController) {
|
||||
|
||||
guard let currentCell = currentCell,
|
||||
let navigationController = self.navigationController else {
|
||||
@@ -62,7 +62,7 @@ public extension PTTableViewController {
|
||||
let nextIndex = IndexPath(row: (currentIndex as NSIndexPath).row + 1, section: (currentIndex as NSIndexPath).section)
|
||||
if case let nextCell as ParallaxCell = tableView.cellForRow(at: nextIndex) {
|
||||
nextCell.showTopSeparator()
|
||||
nextCell.superview?.bringSubview(toFront: nextCell)
|
||||
nextCell.superview?.bringSubviewToFront(nextCell)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ extension PTTableViewController {
|
||||
if #available(iOS 11.0, *) {
|
||||
tableView.contentInsetAdjustmentBehavior = .never
|
||||
} else {
|
||||
tableView.contentInset = UIEdgeInsetsMake(-64, 0, 0, 0)
|
||||
tableView.contentInset = UIEdgeInsets.init(top: -64, left: 0, bottom: 0, right: 0)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,11 +15,11 @@ extension UIView {
|
||||
animation.duration = duration
|
||||
animation.toValue = to
|
||||
animation.fromValue = from
|
||||
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut)
|
||||
animation.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeOut)
|
||||
animation.beginTime = CACurrentMediaTime() + delay
|
||||
if remove == false {
|
||||
animation.isRemovedOnCompletion = remove
|
||||
animation.fillMode = kCAFillModeForwards
|
||||
animation.fillMode = CAMediaTimingFillMode.forwards
|
||||
}
|
||||
return animation
|
||||
}
|
||||
|
||||
@@ -280,7 +280,6 @@
|
||||
84204DF51CB2869E001FC263 /* Sources */,
|
||||
84204DF61CB2869E001FC263 /* Frameworks */,
|
||||
84204DF71CB2869E001FC263 /* Resources */,
|
||||
8485264F1CD39C880052BEAD /* image enum gen */,
|
||||
8499D8C31D006020004B5B37 /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
@@ -318,24 +317,24 @@
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 0730;
|
||||
LastUpgradeCheck = 0900;
|
||||
LastUpgradeCheck = 1020;
|
||||
ORGANIZATIONNAME = "Alex K.";
|
||||
TargetAttributes = {
|
||||
84204DF81CB2869E001FC263 = {
|
||||
CreatedOnToolsVersion = 7.3;
|
||||
DevelopmentTeam = 34MUF9YXTA;
|
||||
LastSwiftMigration = 0900;
|
||||
LastSwiftMigration = 1020;
|
||||
};
|
||||
8499D8B61D006020004B5B37 = {
|
||||
CreatedOnToolsVersion = 7.3.1;
|
||||
DevelopmentTeam = LEAZS7L33U;
|
||||
LastSwiftMigration = 0900;
|
||||
LastSwiftMigration = 1020;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 84204DF41CB2869E001FC263 /* Build configuration list for PBXProject "PreviewTransitionDemo" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
@@ -372,23 +371,6 @@
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
8485264F1CD39C880052BEAD /* image enum gen */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "image enum gen";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "if which swiftgen >/dev/null; then\nswiftgen images \"$PROJECT_DIR/PreviewTransitionDemo/Assets.xcassets\" --output \"$PROJECT_DIR/Constants/Images.swift\"\nelse\necho \"warning: SwiftGen not installed, download it from https://github.com/AliSoftware/SwiftGen\"\nfi";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
84204DF51CB2869E001FC263 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
@@ -457,6 +439,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
@@ -466,12 +449,14 @@
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
@@ -498,7 +483,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
@@ -510,6 +495,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
@@ -519,12 +505,14 @@
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
@@ -545,7 +533,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
@@ -567,8 +555,7 @@
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.dev;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
||||
SWIFT_VERSION = 4.0;
|
||||
SWIFT_VERSION = 5.0;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
@@ -586,8 +573,7 @@
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.dev;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
||||
SWIFT_VERSION = 4.0;
|
||||
SWIFT_VERSION = 5.0;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
@@ -608,8 +594,7 @@
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.PreivewTransition;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = NO;
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
||||
SWIFT_VERSION = 4.0;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
@@ -633,8 +618,7 @@
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.PreivewTransition;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = NO;
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
||||
SWIFT_VERSION = 4.0;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
<?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>IDEDidComputeMac32BitWarning</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
+1
-3
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0900"
|
||||
LastUpgradeVersion = "1020"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
@@ -26,7 +26,6 @@
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
language = ""
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
@@ -37,7 +36,6 @@
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
language = ""
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
|
||||
@@ -28,8 +28,8 @@ extension AppDelegate {
|
||||
|
||||
if let font = UIFont(name: "Avenir-medium", size: 18) {
|
||||
UINavigationBar.appearance().titleTextAttributes = [
|
||||
NSAttributedStringKey.foregroundColor: UIColor.white,
|
||||
NSAttributedStringKey.font: font,
|
||||
NSAttributedString.Key.foregroundColor: UIColor.white,
|
||||
NSAttributedString.Key.font: font,
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,34 @@
|
||||
[](https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=preview-transition-logo)
|
||||

|
||||
# Preview-transition
|
||||
<a href="https://www.ramotion.com/agency/app-development/?utm_source=gthb&utm_medium=repo&utm_campaign=preview-transition"><img src="https://github.com/Ramotion/folding-cell/blob/master/header.png"></a>
|
||||
|
||||
<a href="https://github.com/Ramotion/fpreview-transition">
|
||||
<img align="left" src="https://github.com/Ramotion/preview-transition/blob/master/preview-transition.gif" width="480" height="360" /></a>
|
||||
|
||||
<p><h1 align="left">PREVIEW TRANSITION</h1></p>
|
||||
|
||||
<h4>Preview Transition is a simple preview gallery UI controller with animated tranisitions</h4>
|
||||
|
||||
|
||||
___
|
||||
|
||||
|
||||
|
||||
<p><h6>We specialize in the designing and coding of custom UI for Mobile Apps and Websites.</h6>
|
||||
<a href="https://www.ramotion.com/agency/app-development/?utm_source=gthb&utm_medium=repo&utm_campaign=preview-transition">
|
||||
<img src="https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png" width="187" height="34"></a>
|
||||
</p>
|
||||
<p><h6>Stay tuned for the latest updates:</h6>
|
||||
<a href="https://goo.gl/rPFpid" >
|
||||
<img src="https://i.imgur.com/ziSqeSo.png/" width="156" height="28"></a></p>
|
||||
|
||||
</br>
|
||||
|
||||
[](http://twitter.com/Ramotion)
|
||||
[](https://travis-ci.org/Ramotion/preview-transition.svg?branch=master)
|
||||
[](https://github.com/Ramotion/preview-transition)
|
||||
[](https://cocoapods.org/pods/PreviewTransition)
|
||||
[](http://cocoapods.org/pods/PreviewTransition)
|
||||
[](https://codebeat.co/projects/github-com-ramotion-preview-transition)
|
||||
[](https://paypal.me/Ramotion)
|
||||
|
||||
|
||||
## About
|
||||
@@ -16,11 +38,9 @@ We specialize in the designing and coding of custom UI for Mobile Apps and Websi
|
||||
**Looking for developers for your project?**<br>
|
||||
This project is maintained by Ramotion, Inc. We specialize in the designing and coding of custom UI for Mobile Apps and Websites.
|
||||
|
||||
<a href="https://ramotion.com/?utm_source=gthb&utm_medium=special&utm_campaign=preview-transition-contact-us/#Get_in_Touch">
|
||||
<a href="https://www.ramotion.com/agency/app-development/?utm_source=gthb&utm_medium=repo&utm_campaign=preview-transition">
|
||||
<img src="https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png" width="187" height="34"></a> <br>
|
||||
|
||||
The [iPhone mockup](https://store.ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=preview-transition) available [here](https://store.ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=preview-transition).
|
||||
|
||||
## Requirements
|
||||
|
||||
- iOS 9.0+
|
||||
@@ -138,16 +158,23 @@ if let font = UIFont(name: <Font name> , size: 18) {
|
||||
]
|
||||
}
|
||||
```
|
||||
# Get the Showroom App for iOS to give it a try
|
||||
|
||||
## 📄 License
|
||||
|
||||
Preview Transition is released under the MIT license.
|
||||
See [LICENSE](./LICENSE) for details.
|
||||
|
||||
This library is a part of a <a href="https://github.com/Ramotion/swift-ui-animation-components-and-libraries"><b>selection of our best UI open-source projects.</b></a>
|
||||
|
||||
If you use the open-source library in your project, please make sure to credit and backlink to https://www.ramotion.com/
|
||||
|
||||
## 📱 Get the Showroom App for iOS to give it a try
|
||||
Try this UI component and more like this in our iOS app. Contact us if interested.
|
||||
|
||||
<a href="https://itunes.apple.com/app/apple-store/id1182360240?pt=550053&ct=preview-transition&mt=8" >
|
||||
<img src="https://github.com/ramotion/gliding-collection/raw/master/app_store@2x.png" width="117" height="34"></a>
|
||||
<a href="https://ramotion.com/?utm_source=gthb&utm_medium=special&utm_campaign=preview-transition-contact-us/#Get_in_Touch">
|
||||
|
||||
<a href="https://www.ramotion.com/agency/app-development/?utm_source=gthb&utm_medium=repo&utm_campaign=preview-transition">
|
||||
<img src="https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png" width="187" height="34"></a>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
Follow us for the latest updates<br>
|
||||
[](https://twitter.com/intent/tweet?text=https://github.com/ramotion/preview-transition)
|
||||
[](https://twitter.com/ramotion)
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 13 MiB |
Reference in New Issue
Block a user