Design and prototype customized UI, interaction, navigation, transition and animation for App Store ready Apps in Interface Builder with IBAnimatable.

Overview

IBAnimatable

Design and prototype customized UI, interaction, navigation, transition and animation for App Store ready Apps in Interface Builder with IBAnimatable.

IBAnimatable hero image

Build Status Language CocoaPods Carthage Compatible Accio supported License

The app was made in Interface Builder with IBAnimatable without a single line of code. Due to the size of the GIF file on Dribbble, it only demonstrates a subset of features. We can also find the full HD version on YouTube or MP4 on Github

Key features

  • 100% compatible with UIKit. All IBAnimatable APIs are extensions of UIKit. No pollutions to UIKit's APIs.
  • 100% compatible with Auto Layout and Size Classes. No custom layout system.
  • User interface design and preview in IB: corner radius, border, mask, shadow, gradient colors, tint color, blur effect etc.
  • Animation design in IB: slide in/out, fade in/out, zoom in/out, flip, pop, shake, rotate, move etc.
  • Transition design in IB: fade, slide, flip, cube, portal, fold, explosion etc.
  • Interactive gesture design in IB: pan, screen edge pan, pinch etc.
  • Presentation design in IB: flip, cover, zoom, dropdown etc.
  • Activity indicator design in IB: ball beat, ball rotate, cube transition, Pacman etc.

StoryboardPreview

Here is the full design in a Storyboard in Interface Builder.

With IBAnimatable, we can design a UI in Interface Builder like what we can do in Sketch, and prototype animations in a Swift playground like what we can do in Framer. Also, we can use the output of the design directly in the production ready App.

As a designer, we love Sketch, which is a simple but yet super powerful tool to create UI. However, Sketch can't design interaction, navigation, transition and animation, and we may need another tool like Framer to design some of them. Moreover, to make an App Store ready App, we need to use Xcode and Interface Builder to implement the UI and animations. To speed up the process and minimize the waste, we create IBAnimatable to make Interface Builder designable and animatable.

How to install

Manually install

Copy and paste IBAnimatable folder in your Xcode project.

Swift package manager

To integrate using Apple's Swift package manager, add the following as a dependency to your Package.swift:

.package(url: "https://github.com/IBAnimatable/IBAnimatable.git", .upToNextMajor(from: "6.1.0"))

CocoaPods

Add the following entry in your Podfile:

   pod 'IBAnimatable'

Carthage

Add the following entry in your Cartfile:

   github "IBAnimatable/IBAnimatable"

Accio

Add the following entry in your Package.swift:

.package(url: "https://github.com/IBAnimatable/IBAnimatable.git", .upToNextMajor(from: "6.1.0")),

Next, add IBAnimatable to your App targets dependencies like so:

.target(
    name: "App",
    dependencies: [
        "IBAnimatable",
    ]
),

Please Notice, there is a limitation of a built framework for @IBDesignable and @IBInspectable, that will impact on IBAnimatable when you use Carthage or Accio. There is a workaround to use Carthage, Accio or Swift package manager with IBAnimatable, please have a look at Carthage – no Animatable UI Classes appearing in Storyboard

As @DanielAsher mentioned

I use carthage update --use-submodules --no-build --no-use-binaries and manually add the both the framework project and the framework as an embedded dependency. This method is robust, and fine-grained, but perhaps not as easy as dragging the built framework into your project.

Git submodule

Add this repo as a submodule, and add the project file to your workspace. You can then link against IBAnimatable.framework for your application target.

Version 6.1

IBAnimatable 6.1 is the latest major release of IBAnimatable. This version supports Swift 5.1. There are no API breaking changes from migrating from version 5.x and 6.

Version 6

IBAnimatable 6 supports Swift 5. There are no API breaking changes from migrating from version 5.x.

Version 5.2

This version supports Swift 4.2. There are no API breaking changes from migrating from version 4.x.

If you migrate from version 3.x. Please check out IBAnimatable 4.0 Migration Guide for more information.

Swift version

Swift 5.1

There are no API breaking changes when migrating from Swift 5 to Swift 5.1 using IBAnimatable.

If you are using Xcode 11 with Swift 5, please use the 6.0.0 release.

Swift 4.2

There are no API breaking changes when migrating from Swift 4.* to Swift 4.2 using IBAnimatable.

If you are using Xcode 10 with Swift 4.2, please use the latest tagged 5.x release.

Swift 4.1

There are no API breaking changes when migrating from Swift 4 to Swift 4.1 using IBAnimatable.

If you are using Xcode 9.3 with Swift 4.1, please use the latest tagged 5.x release.

Swift 4

There are no API breaking changes when migrating from Swift 3.2 to Swift 4 using IBAnimatable.

If you are using Xcode 9 with Swift 4, please use the latest tagged 5.x release.

Swift 3.2

There are no API breaking changes when migrating from Swift 3.1 to Swift 3.2 using IBAnimatable.

If you are using Xcode 9 and Swift 3.2, please use the 4.2 release.

Swift 3 or 3.1

If you migrate from Swift 2.x, please check out IBAnimatable 3.0 Migration Guide for more information about how to migrate your project to 3.0. Version 3 follows Swift 3 API Design Guidelines and contains a lot of breaking changes from version 2.x.

If you are using Xcode 8 with Swift 3, please use the latest tagged 4.x release.

Languages

中文

Features

  • From prototype to shippable App Store ready App - What you design in Interface Builder is what the App exactly looks. More details can be found in this talk Prototype and Design App Store ready Apps in Interface Builder (/dev/world/2016)
  • Designer-friendly - Sketch style configuration panel on Attributes inspector (Attributes inspector) to lower the learning curve for using Interface Builder.
  • Animation design support in Swift playground - Similar to Framer, we can prototype animations in Swift playground to save time for running on a simulator or actual iOS devices.
  • Built-in Auto Layout support - We can use Auto Layout and Size Classes with IBAnimatable to support orientations and multiple iOS devices.
  • Navigation and transition support - We can use default navigation pattern in the App. IBAnimatable also has custom transition animators and segues to support transition animations and gesture interactions.
  • Protocol-oriented programming - IBAnimatable uses a protocol-oriented programming paradigm. With Swift protocol extension, it is easy to support more designable or animatable features. We can even use these protocol extensions to create other custom UI elements instead of using the default ones from IBAnimatable. More details can be found in this talk Prototype and Design App Store ready Apps in Interface Builder (/dev/world/2016) - Part 2: Protocol oriented programming

Use cases

  • Prototyping - Create interactive prototypes to validate ideas quickly.
  • Redesigning in Interface Builder - Redesign the UI from Sketch and animations from Framer without writing any code.
  • Making custom UI elements - Use IBAnimatable protocols to make custom UI elements. e.g. Buttons with a default color palette.

Documentations

How to run the example App

The easy way to learn and understand how powerful of IBAnimatableis to run the example App and play around the settings in Interface Builder. Just a few steps we can run the App as below, to see more features, we can tap on "Forget Password" button to unlock them. 😉

  1. Clone the repository
$ git clone https://github.com/IBAnimatable/IBAnimatable.git
  1. Open the workspace in Xcode
$ cd IBAnimatable
$ open IBAnimatable.xcworkspace
  1. Compile and run the app on your simulator or iOS device

How to design in Interface Builder

To use IBAnimatable to design the UI and animations in Interface Builder, just follow a few steps as below:

  1. Open a Storyboard or Xib file.
  2. Drag and drop a UIKit element e.g. UIView to a UIViewController.
  3. In Identity inspector (Identity inspector), configure the UI element to Animatable custom UI class e.g. AnimatableView, you can find all Animatable classes in APIs.md.
  4. Configure the UI and animations in Attribute Inspector.

How to animate in Swift playground

We can configure the animation settings in Attribute inspector. However, Interface Builder doesn't support previewing Animations, but we can still prototype animations in Swift playground. There are three sample pages to demonstrate how to design animation in Swift playground. You can find them in IBAnimatable.playground.

  1. Open IBAnimatable.xcworkspace
  2. Select IBAnimatable Framework scheme and build it with Command + b
  3. Select IBAnimatable.playground, choose one page in Swift playground, then click on "Assistant editor" button to split the playground. After that, select "Timeline" on the top of right-hand side to preview the animation. We can use Xcode menu "Editor" -> "Execute" to re-run the playground.

How to animate programmatically

As you saw above, we can prototype an App fully in Interface Builder without a single line of code, but IBAnimatable also provides APIs to let us fully control the UI and animations. IBAnimatable provides simple promise-like APIs. We can easily call them in one line.

view.animate(.pop(repeatCount: 1)) // pop animation for the view
view.animate(.squeezeFade(way: .in, direction: .left)) // squeeze and fade in from left animation

You can play around with all these predefined animations in the Swift playground Page - Predefined Animations

Animation properties

There are some properties we can change to customize the animation. What we need to do is to pass the parameters to animate() method to start the animation.

view.animate(.squeeze(way: .in, direction: .left), duration: 1, damping: 1, velocity: 2, force: 1)

You can play around with all animations with different parameters in the Swift playground Page - Animation Properties

Chaining animations

Sometimes, we need to run more animation after the previous one. With IBAnimatable, we can easily use promise-like API to chain all animations together to provide a sleek user experience.

// We can chain the animations together, it is the source code of animated GIF in "Animate in Swift playground" section
view.animate(.squeezeFade(way: .in, direction: .down))
    .then(.pop(repeatCount: 1))
    .then(.shake(repeatCount: 1))
    .then(.squeeze(way: .in, direction: .down))
    .then(.wobble(repeatCount: 1))
    .then(.flip(along: .x))
    .then(.flip(along: .y))
    .then(.slideFade(way: .out, direction: .down))

Delaying animations

We can use delay method to delay the next animation.

view.animate(.squeeze(way: .in, direction: .left))
    .delay(0.5)
    .then(.shake(repeatCount: 3))

We can also delay the first animation.

view.delay(2)
    .then(.squeeze(way: .in, direction: .left))

Completion handler

We can add a completion handler/closure to execute when all animations are completed.

view.animate(.squeeze(way: .in, direction: .left))
    .completion { print("Animations finished!") }

How to contribute

All of us can contribute to this project. Fewer overheads mean less time to build quality Apps and more time to enjoy coffee ☕️ .

  • If you are a designer, you can design in Interface Builder with IBAnimatable without a design tool like Sketch, or implement your existing design from Sketch or Photoshop in Interface Builder rapidly. With IBAnimatable, you should be able to do all most of the design work in Interface Builder. If you have any feature request, please create a GitHub Issue and we will put it in the backlog. If you have done any design with IBAnimatable, please let us know via creating Pull Request or GitHub Issue. We will add it to README file.

  • If you are a developer, you can work on features or fix bugs, please check out Vision, Technical Considerations and Roadmap and GitHub Issues to find out the backlogs. If you have used IBAnimatable in your App, please let us know via creating Pull Request or GitHub Issue. We will add it to README file.

  • If you are good at English, please correct my English 😁 . If you are good at other languages, please create a README file in those languages.

  • If you like the project, please share it with the other designers and developers, and star 🌟 the project. 🤗

Many thanks to all contributors 🤗 especially to @tbaranes who develops a lot of features and maintains the project.

Roadmap

Vision, Technical Considerations and Roadmap

Inspirations / Credits

  • IBDesignable and IBInspectable - The entire project is based on that.
  • Sketch - Interface Builder should be as easy as Sketch to use.
  • Framer Studio - Design and preview animations in one place.
  • Spring by Meng To - steal a lot of animation parameters from this project.
  • VCTransitionsLibrary by Colin Eberhardt - port all transition animations from this project, and add parameters support and fix bugs.
  • NVActivityIndicatorView by Vinh Nguyen - port all activity indicator animations from this project, and migrate to Swift 3.
  • Invision ToDo App UI Kit, The demo App's original design is from this UI Kit and redone in Interface Builder. We also added interaction, navigation and animations.

Change Log

Please see CHANGELOG.md

License

IBAnimatable is released under the MIT license. See LICENSE for details.

Comments
  • API Improvement proposal - Supporting enum for Inspectable properties in code and Interface Builder

    API Improvement proposal - Supporting enum for Inspectable properties in code and Interface Builder

    enum checklist to improve

    • [x] MaskType
    • [x] AnimationType
    • [x] GradientStartPoint
    • [x] BorderSide
    • [x] BlurEffectStyle (Add new options regular and prominent for UIBlurEffectStyle)
    • [x] ColorType - FlatColorsTypeScript.swift
    • [x] GradientType - GradientsTypeScript.swift
    • [x] InteractiveGestureType
    • [x] TransitionAnimationType
    • [x] TransitionFromDirection
    • [x] TransitionHollowState
    • [x] TransitionPageType
    • [x] PresentationAnimationType
    • [x] PresentationModalSize
    • [x] PresentationModalPosition
    • [x] PresentationKeyboardTranslation

    Other tasks

    • [x] Migration Guide

    -------- Original Message -------- Hi All, I really love using this library. However i think that the API can be improved.

    Presently a lot of properties are String because of InterfaceBuilder. Some property would be more usable, self-documented and less error-prone if they were enums with associated type.

    Enums with associatedType are powerful and fit perfectly with IBAnimatable Purpose.

    Before pursuing one example with maskType.using enums it will be possible to make this:

    
    animatableView.maskType = MaskType.Parrallelogram(angle:45, direction: .Top)
    
    animatableView.maskType = .Polygon(sides:8)
    animatableView.maskType = .Circle
    
    animatableView.maskType = “Polygon(8)“ // yes this is possible since the MaskType Enum adopts StringLiteralConvertible protocol
    
    BUT (sadly) this will NOT be possible 
    
    let string = “Polygon(8);
    animatableView.maskType = string // Since there is no StringConvertible protocol in swift (yet) , only String Lterals are convertible 
    
    

    I tried a lot of thing to be able to do this AND to stay compatible with Interface Builder But No way :(

    The most convenient way IMO is to make 2 properties.

    
    private var maskType : String
    var eMaskType : MaskType
    
    

    Since the string maskType is made for Interface Builder it can be private. The advantage is that when accessing from code they will be just one way exposed. and since MaskType is StringLiteralConvertible, the existant code that looks like : view.maskType = “Circle”

    will justNeed to be transformed to

    view.eMaskType = “Circle” And we could use@avalable(iOS, renamed=“eMaskType”) in order to simplify the migration

    However, Since WWDC is soon, we can just wait to see Interface Builder improvements :) I have already refactor maskType locally to an enum, for testing this. It works.

    What do you think about it ?

    type: enhancement 
    opened by lastMove 60
  • Chainable animations

    Chainable animations

    This PR is a Prototype of the Chainable feature; It's almost fully working and without breaking changes :

     self.blurEffectView.animate(animation: .pop(repeatCount: 1))
          .delay(1)
          .then( .slide(way: .out, direction: .left))
          .delay(1)
          .then(.slide(way: .in, direction: .left))
          .then(.pop(repeatCount: 1))
          .completion {
    	print("Completed !");
        }
    

    However I am not entirely satisfy by some points. 
I need your help :

    1 - Should The view property of AnimationPromise be weak (or maybe unowned) ?

    2 - I wanted to say that the argument of AnimationPromise initalizer has to be an UIView implementing Animatable. 
The only way I fond is by using Generics. Is there another solution ? 
I need that because the animate Method was defined inside zextension Animatable where Self: UIView`

    3 - when doing view.animate(animation: .pop).delay(2).delay(3).then(.squash) the delay applied is 3s. What do you think about that, is it okay ?

    4 - Coherence issue about those methods :

    
        public func flip(axis: AnimationType.Axis, completion: @autoclosure @escaping AnimatableCompletion? = default)
    

    etc Presently thes methods are publicand not chainable. 
Should we put these method privates and encourage the usage of .animate().completion ?

    5 - To avoid editing a lot of methods i did :

        self.duration = configuration.duration
        self.delay = configuration.delay
        self.damping = configuration.damping
        self.velocity = configuration.velocity
        self.force = configuration.force
    

    Before Each Animation i modify, theses properties from the view. It can be confusing, or break working code I guess.

    opened by lastMove 30
  • AnimatableLabel slideFade(in,right) is not working in TableViewCell in iOS 10

    AnimatableLabel slideFade(in,right) is not working in TableViewCell in iOS 10

    There is an issue when to use slideFade or slide animation inside a TableViewCell in iOS 10.

    There are not problems if we don't use those animations within a TableViewCell . Or there are not problems in iOS 9.

    ------Origin message--------------------- I am currently migrating to version 3.0 and observed that AnimatableLabel with _animationType = "slideFade(in,right)" not working when I have configured in IB but pop(1) is working. Could you please advise.

    screen shot 2016-09-24 at 1 10 09 pm type: bug help wanted 
    opened by digidhamu 23
  • Refactor to SystemTransitionAnimator

    Refactor to SystemTransitionAnimator

    We can continue the discussion of Pull Request #426 here

    I was able to condense all the SystemTransitionAnimators into a single class SystemTransitionAnimator

    There's probably a better way to do this and I would like to do something similar for the other TransitionAnimators, but when trying to do everything at once it got crazy fast 😅

    I would also like to condense the ActivityIndicatorAnimators if possible.

    In short, reduce the object graph and any repeated code as much as possible.

    I consider this Pull Request incomplete, I'd just like some feedback before taking it any further.

    I also removed the switch statements as discussed in #426

    opened by SD10 18
  • Carthage – no Animatable UI Classes appearing in Storyboard

    Carthage – no Animatable UI Classes appearing in Storyboard

    Hi,

    I have installed via carthage, but adding AnimatableView as class and IBAnimatable in module has no effect (no fields showing in Storyboard inspector).

    Works if I copy the source files folder manually to project but we'd really want to use Carthage.

    Please help.

    Thanks

    type: bug help wanted difficulty: hard 
    opened by terenzeyuen 16
  • BorderSide

    BorderSide

    If I understand BorderSide correctly it's there to define which border should be displayed with the given BorderColor and -Width.

    my issue is that I don't manage to make it work, neither by setting the String in IB, nor by setting the variable in the keypath, nor by setting the String programatically... besides that, I also noticed that every parameter I set in IB is automatically set as keypath, but for borderSide...

    any help?

    PS: using a UIView and Swift 2.2

    opened by DonBaronFactory 16
  • Swift 4.2 support

    Swift 4.2 support

    This is needed to support Xcode 10 (beta). The codebase should still be compatible with Swift 4.1 (Xcode 9).

    Currently the test_predefinedColor tests fail, because the iterateEnum(from:) function in IBEnum is broken somehow in Swift 4.2.

    Note: I didn't change the Travis file yet.

    opened by djbe 14
  • MaskDesignable removes custom mask by default

    MaskDesignable removes custom mask by default

    Hi, thanks again for a great framework! I require using a gradient mask on a subclass of AnimatableView. I didn't find a way to do this from the designer - so I created a layer.mask in my derived class. However, MaskDesignable removes the layer mask by default (i.e. when .none) in this line. I guess I'm still learning the philosophy of this library. I love being able to allow designers access to powerful features of UIKit, but - at first blush - this removes the ability to robustly use programmatic animation APIs. best of wishes and all power to you!

    type: enhancement difficulty: easy 
    opened by DanielAsher 14
  • Animatable presentation controller

    Animatable presentation controller

    Related to #198, previous PR #247 (for the history) This PR is the first step of custom presentation controller support in IBAnimatable. In the current state, the feature is ready to go since the main features are implemented.

    New in this PR:

    • Introducing PresentationDesignable which handle all the designable part of the presentedVC
    • Introducing PresentationAnimatable which inherits of UIPresentationController and will be in charge of managing the present / dismiss animations, dimming view... and all the setup around presentation
    • Introducing AnimatablePresentatedViewController, as the others, it just the Animatable type to present a controller
    • Introducing PresentationModalSize and PresentationModalPosition which are used to customise the modal size and position once presented
    • A section "Presentation" has been added to the project example in order have the different animation in demonstration.

    Features supported:

    • AnimatablePresentatedViewController presentation programatically or using segues
    • AnimatablePresentatedViewController customisations (programatically or in IB):
      • cornerRadius (dimminView)
      • dismissOnTap
      • backgroundColor
      • opacity
      • blurEffectStyle
      • blurOpacity
      • shadowColor
      • shadowRadius
      • shadowOpacity
      • shadowOffset
    • 6 present / dismiss animations
    • Flip
    • CrossDissolve
    • Cover(Top, Right, Bottom, Left)
    • Invert
    • Custom position:
      • Center
      • TopCenter
      • BottomCenter
      • LeftCenter
      • RightCenter
      • CustomCenter(centerPoint: CGPoint)
      • CustomOrigin(origin: CGPoint)
    • Custom size (width and height are set separately)
      • Half
      • Full
      • Custom(size: Float)

    Missing:

    • More options: keyboard observer, UIKit Dynamics, context support... but we can add them progressively by adding new options.
    • More examples: currently showing only the transition, but it could be worth to have example playing with the dimming view customisation, as well as custom position / size modal
    • Documentation in CHANGELOG and README

    Questions / though:

    • Why TransitionAnimatable is an Animatable instead of Designable? (not really related with this PR, but just wondering)
    • The global naming can be improved for sure, if you have any suggestions... !
    • Discussion about how to differentiate Presentation and Transition code. Read #247 comments to have a full context

    I know that is a big PRs with a lot of changes, but I'm counting on you all to take a look at the code and give me some feedbacks 😄

    type: enhancement 
    opened by tbaranes 14
  • AnimatablePresentationController

    AnimatablePresentationController

    AnimatablePresentationController can support the user in prototyping and designing Modal View ( UIPresentationController) in Interface Build.

    It may have the following properties.

    • [x] cornerRadius, shadowColor, shadowRadius, shadowOpacity, etc. for the Modal View, most of properties are supported by AnimatableView
    • [x] dimmingViewBackgroundColor, dimmingViewOpacity, dimmingViewBlurEffect, etc for background dimming view
    • [x] animationType, e.g. Pop(direction) and all supported transition animators
    • [x] dismissGestureType, e.g. Swipe, Tap
    • [x] Custom size / position
    • [x] observeKeyboard, up the modal when keyboard is opening
    • [ ] useDynamics, use UIKit Dynamics when panning the view
    • [x] OverCurrentContext / fullscreen

    Just some initial idea, feedback is welcome. Don't know which Milestone will work on it, so put "help wanted" 😉

    Relative to #172, #281 and #20

    type: enhancement difficulty: medium 
    opened by JakeLin 14
  • Danger support

    Danger support

    That aim to close #362 In order to that, I had to create a github bot, and a gmail account. I will slack the credentials directly.

    The Dangerfile is a first version, I think we should improve it following our future needs, but it's a good start.

    Now, wait & see if everything is working 😬

    type: enhancement 
    opened by tbaranes 12
  • Bump tzinfo from 1.2.7 to 1.2.10

    Bump tzinfo from 1.2.7 to 1.2.10

    Bumps tzinfo from 1.2.7 to 1.2.10.

    Release notes

    Sourced from tzinfo's releases.

    v1.2.10

    TZInfo v1.2.10 on RubyGems.org

    v1.2.9

    • Fixed an incorrect InvalidTimezoneIdentifier exception raised when loading a zoneinfo file that includes rules specifying an additional transition to the final defined offset (for example, Africa/Casablanca in version 2018e of the Time Zone Database). #123.

    TZInfo v1.2.9 on RubyGems.org

    v1.2.8

    • Added support for handling "slim" format zoneinfo files that are produced by default by zic version 2020b and later. The POSIX-style TZ string is now used calculate DST transition times after the final defined transition in the file. The 64-bit section is now always used regardless of whether Time has support for 64-bit times. #120.
    • Rubinius is no longer supported.

    TZInfo v1.2.8 on RubyGems.org

    Changelog

    Sourced from tzinfo's changelog.

    Version 1.2.10 - 19-Jul-2022

    Version 1.2.9 - 16-Dec-2020

    • Fixed an incorrect InvalidTimezoneIdentifier exception raised when loading a zoneinfo file that includes rules specifying an additional transition to the final defined offset (for example, Africa/Casablanca in version 2018e of the Time Zone Database). #123.

    Version 1.2.8 - 8-Nov-2020

    • Added support for handling "slim" format zoneinfo files that are produced by default by zic version 2020b and later. The POSIX-style TZ string is now used calculate DST transition times after the final defined transition in the file. The 64-bit section is now always used regardless of whether Time has support for 64-bit times. #120.
    • Rubinius is no longer supported.
    Commits
    • 0814dcd Fix the release date.
    • fd05e2a Preparing v1.2.10.
    • b98c32e Merge branch 'fix-directory-traversal-1.2' into 1.2
    • ac3ee68 Remove unnecessary escaping of + within regex character classes.
    • 9d49bf9 Fix relative path loading tests.
    • 394c381 Remove private_constant for consistency and compatibility.
    • 5e9f990 Exclude Arch Linux's SECURITY file from the time zone index.
    • 17fc9e1 Workaround for 'Permission denied - NUL' errors with JRuby on Windows.
    • 6bd7a51 Update copyright years.
    • 9905ca9 Fix directory traversal in Timezone.get when using Ruby data source
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump git from 1.3.0 to 1.11.0

    Bump git from 1.3.0 to 1.11.0

    Bumps git from 1.3.0 to 1.11.0.

    Release notes

    Sourced from git's releases.

    Release v1.11.0

    Full Changelog

    • 292087e Supress unneeded test output (#570)
    • 19dfe5e Add support for fetch options "--force/-f" and "--prune-tags/-P". (#563)
    • 018d919 Fix bug when grepping lines that contain numbers surrounded by colons (#566)
    • c04d16e remove from maintainer (#567)
    • 291ca09 Address command line injection in Git::Lib#fetch
    • 521b8e7 Release v1.10.2 (#561)

    Release v1.10.2

    Full Changelog

    • 57f941c Release v1.10.2
    • c987a74 Add create-release, setup, and console dev scripts (#560)
    • 12e3d03 Store tempfile objects to prevent deletion during tests (#555)

    Release v1.10.1

    Full Changelog

    • c7b12af Release v1.10.1
    • ea28118 Properly escape double quotes in shell commands on Windows (#552)
    • db060fc Properly unescape diff paths (#504)
    • ea47044 Add Ruby 3.0 to CI build (#547)
    • cb01d2b Create a Docker image to run the changelog (#546)

    v.1.10.0

    Full Changelog

    • 8acec7d Release v1.10.0 (#545)
    • 8feb4ff Refactor directory initialization (#544)
    • 3884314 Add -ff option to git clean (#529)
    • 984ff7f #533 Add --depth options for fetch call (#534)
    • 6cba37e Add support for git init --initial-branch=main argument (#539)
    • ff98c42 Add support for the git merge --no-commit argument (#538)
    • 1023f85 Require pathname module (#536)

    v1.9.1

    Full Changelog

    • 58100b0 Release v1.9.1 (#527)
    • 45aeac9 Fix the gpg_sign commit option (#525)

    v1.9.0

    Full Changelog

    • 07a1167 Release v1.9.0 (#524)
    • 8fe479b Fix worktree test when git dir includes symlinks (#522)
    • 0cef8ac feat: add --gpg-sign option on commits (#518)
    • 765df7c Adds file option to config_set to allow adding to specific git-config files (#458)

    ... (truncated)

    Changelog

    Sourced from git's changelog.

    v1.11.0

    • 292087e Supress unneeded test output (#570)
    • 19dfe5e Add support for fetch options "--force/-f" and "--prune-tags/-P". (#563)
    • 018d919 Fix bug when grepping lines that contain numbers surrounded by colons (#566)
    • c04d16e remove from maintainer (#567)
    • 291ca09 Address command line injection in Git::Lib#fetch
    • 521b8e7 Release v1.10.2 (#561)

    See https://github.com/ruby-git/ruby-git/releases/tag/v1.11.0

    v1.10.2

    See https://github.com/ruby-git/ruby-git/releases/tag/v1.10.2

    1.10.1

    See https://github.com/ruby-git/ruby-git/releases/tag/v1.10.1

    1.10.0

    See https://github.com/ruby-git/ruby-git/releases/tag/v1.10.0

    1.9.1

    See https://github.com/ruby-git/ruby-git/releases/tag/v1.9.1

    1.9.0

    See https://github.com/ruby-git/ruby-git/releases/tag/v1.9.0

    1.8.1

    See https://github.com/ruby-git/ruby-git/releases/tag/v1.8.1

    1.8.0

    See https://github.com/ruby-git/ruby-git/releases/tag/v1.8.0

    1.7.0

    See https://github.com/ruby-git/ruby-git/releases/tag/v1.7.0

    1.6.0

    See https://github.com/ruby-git/ruby-git/releases/tag/v1.6.0

    1.6.0.pre1

    See https://github.com/ruby-git/ruby-git/releases/tag/v1.6.0.pre1

    ... (truncated)

    Commits
    • 546bc03 Release v1.11.0
    • 292087e Supress unneeded test output (#570)
    • 19dfe5e Add support for fetch options "--force/-f" and "--prune-tags/-P". (#563)
    • 018d919 Fix bug when grepping lines that contain numbers surrounded by colons (#566)
    • c04d16e remove from maintainer (#567)
    • 291ca09 Address command line injection in Git::Lib#fetch
    • 521b8e7 Release v1.10.2 (#561)
    • c987a74 Add create-release, setup, and console dev scripts (#560)
    • 12e3d03 Store tempfile objects to prevent deletion during tests (#555)
    • 735b083 Release v1.10.1 (#553)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump cocoapods-downloader from 1.3.0 to 1.6.3

    Bump cocoapods-downloader from 1.3.0 to 1.6.3

    Bumps cocoapods-downloader from 1.3.0 to 1.6.3.

    Release notes

    Sourced from cocoapods-downloader's releases.

    1.6.3

    Enhancements
    • None.
    Bug Fixes
    • None.

    1.6.2

    Enhancements
    • None.
    Bug Fixes
    • None.

    1.6.1

    Enhancements
    • None.
    Bug Fixes
    • None.

    1.6.0

    Enhancements
    • None.
    Bug Fixes
    • Adds a check for command injections in the input for hg and git.
      orta #124

    1.5.1

    Enhancements
    • None.
    Bug Fixes
    • Fix "can't modify frozen string" errors when pods are integrated using the branch option
      buju77 #10920

    1.5.0

    ... (truncated)

    Changelog

    Sourced from cocoapods-downloader's changelog.

    1.6.3 (2022-04-01)

    Enhancements
    • None.
    Bug Fixes
    • None.

    1.6.2 (2022-03-28)

    Enhancements
    • None.
    Bug Fixes
    • None.

    1.6.1 (2022-03-23)

    Enhancements
    • None.
    Bug Fixes
    • None.

    1.6.0 (2022-03-22)

    Enhancements
    • None.
    Bug Fixes
    • Adds a check for command injections in the input for hg and git.
      orta #124

    1.5.1 (2021-09-07)

    Enhancements
    • None.

    ... (truncated)

    Commits
    • c03e2ed Release 1.6.3
    • f75bccc Disable Bazaar tests due to macOS 12.3 not including python2
    • 52a0d54 Merge pull request #128 from CocoaPods/validate_before_dl
    • d27c983 Ensure that the git pre-processor doesn't accidentally bail also
    • 3adfe1f [CHANGELOG] Add empty Master section
    • 591167a Release 1.6.2
    • d2564c3 Merge pull request #127 from CocoaPods/validate_before_dl
    • 99fec61 Switches where we check for invalid input, to move it inside the download fun...
    • 96679f2 [CHANGELOG] Add empty Master section
    • 3a7c54b Release 1.6.1
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • SPM Compiler Errors

    SPM Compiler Errors

    I am trying to migrate to Swift Package Manager because I'm a CocoaPod guy, but I'm getting a lot of compiler errors when I'm using SPM for IBAnimatable.

    The following screenshot is just a few of the issues I'm getting when I compile the project. It still builds, though. But it is annoying to see these errors popping out during build time.

    I am not sure if I am missing a setting in my project. The way I understand the issues, it somehow tries to build for other OS (e.g., tvOS). My project supports only iOS devices.

    Hope anyone can help me with this. Thank you!

    Screen Shot 2021-04-01 at 6 24 13 PM

    opened by patteruel-dev 2
  • Image going out of frame while apply shadow

    Image going out of frame while apply shadow

    I have a UIImageView to which I have applied cornerRadius, border, shadow, clipsToBound but image is going out of its frame(with aspectFill). I have also tried to add UIImageView in UIView but its not working.

    Xcode: 12.2 IBAnimatable Version: 6.1.0 iOS Version: 14.2 (iPhone 12)

    I have made a sample project for this please look into it: IBAnimatable_Test.zip

    Here is a screenshot: Simulator Screen Shot - iPhone 12 - 2020-12-16 at 09 35 39

    opened by ibhavin 0
Releases(6.1.0)
  • 6.1.0(Apr 6, 2020)

    Release 6.1.0 to support Swift 5.1 🎉. Great thanks to all contributors 👍

    API breaking changes

    N/A

    Enhancements

    • Allow imbricated AnimationType options, Array and operator + to create compound animation by string. #611 by @phimage
    • Implement Hashable with Hasher. #616 by @phimage
    • Add roundedPolygon, a polygon MaskType with corner radius. #619 by @phimage
    • Add new mask type kite. #619 by @phimage

    Bugfixes

    Source code(tar.gz)
    Source code(zip)
  • 6.0.0(Jun 13, 2019)

  • 5.2.1(Sep 27, 2018)

    This is a small release but can bring the support for the old version of Swift and Xcode. Thanks to @djbe

    API breaking changes

    N/A

    Enhancements

    N/A

    Bugfixes

    • Fix support for older Swift versions for some users. #590 by @djbe
    Source code(tar.gz)
    Source code(zip)
  • 5.2.0(Sep 19, 2018)

    In this release, we have added a lot of cool animations for activity indicator. And improved the syntax for writing animations in code. Also, we support Swift 4.2 and Xcode 10 without any breaking changes 🎉

    Great thanks to @phimage, @tbaranes, @djbe, and @edon2005 👏

    API breaking changes

    N/A

    Enhancements

    • Allow to create new compound animation by code using operator +, or Array . #559 by @phimage
    • Add new activity indicators circleStrokeSpin, circleDashStrokeSpin, gear, tripleGear, heartBeat and triforce. #561 by @phimage
    • Add new activity indicator rupee. #562 by @phimage
    • Make AnimatableCollectionViewCell conforming to RotationDesignable #565 by @tbaranes
    • Add preferred presentation modal size. #566 by @phimage
    • Add conical gradient type. #567 by @phimage
    • Animatable timingFunction parameter could now be used with all animation types. #571 by @phimage
    • Add new activity indicators newtonCradle and circlePendulum. #573 by @phimage
    • Add new mask rounded to make a rounded rectangle. #575 by @phimage
    • Support for Swift 4.2. #576 by @djbe
    • Upgrade for Xcode 10 #588 by @JakeLin

    Bugfixes

    • Fix some activity indicator animations . #562 by @phimage
    • Fix wrong setted center in UIView after using NatGeo transition. #578 by @edon2005
    Source code(tar.gz)
    Source code(zip)
  • 5.1.0(Apr 22, 2018)

    5.1.0

    This release adds support for Swift 4.1 as well as multiple enhancements and bug fixes.

    Big thanks to @phimage, @tbaranes, @kazyk, @lukas2, @DanielAsher, @JakeLin 👏

    API breaking changes

    N/A

    Enhancements

    • Add new mask types .drop, .plusSign, .moon. #519 by @phimage
    • Add new mask types .heart, .gear, .ring, .superEllipse. #518 by @phimage
    • Add support for radial gradient. Currently not working with startPoint. #527 by @tbaranes
    • Animate TabBarItem image view when clicking on it. #539 by @phimage
    • Add compound animation type to do sequential or parallel animations. #520 by @phimage
    • Add spin animation type. #549 by @phimage
    • Add insetBy mask type. #554 by @phimage
    • Upgrade to Swift 4.1. #557 by @JakeLin
    • Add ib to support IBAnimatable without interface builder. #528 by @tbaranes

    Bugfixes

    • Zoom out animation won't override view alpha #545 by @tbaranes
    • Fix presented modal view (over context) frame when device orientation changed. #516 by @phimage
    • Fix dismissal animation type of AnimatableModalViewController when the type is set in Interface Builder. #526 by @kazyk
    • Fix view's borders when using it with corner radius allSides #530 by @tbaranes
    • Fix CACurrentMediaTime usage by calling it on the CALayer object with conversion. #541 by @lukas2
    Source code(tar.gz)
    Source code(zip)
  • 5.0.0(Sep 21, 2017)

  • 4.2.0(Sep 16, 2017)

    This is the last version to support Swift 3.* including Swift 3.2 (for Xcode 9). Thanks to all the contributors:
    @phimage, @tbaranes and @SD10.

    API breaking changes

    NO breaking changes 😁

    Enhancements

    • Add TimingFunctionType attribute to Animatable to specifies the speed curve of an animation. #478 by @phimage Add new mask type .ellipse. #481 by @phimage
    • Add stickOrMoveUp keyboard translation option when presenting a viewController. #489 by @tbaranes
    • Add scale, scaleTo and scaleFrom animation types. #494 by @phimage
    • PaddingDesignable now applies padding to the underlying text, edit, and placeholder rects -- opposed to using a UIView spacer. #492 by @SD10

    Bugfixes

    • PlaceholderDesignable now applies placeholderColor to Placeholder defined in Interface Builder before checking the placeholderText property. #499 by @SD10
    • Fixes bug where Interface Builder doesn't recognize the delegate outlet for UITableView and UICollectionView. #506 by @SD10
    Source code(tar.gz)
    Source code(zip)
  • 4.1.0(May 10, 2017)

    Here is 4.1.0! As any releases, it includes things such as new features and bugfixes. This time, it also includes one breaking news for IBAnimatable: our first unit tests ( @SD10 👏 ), wich is the first step in the long road of the 100% code coverage!

    Thanks to all the contributors for making this release real 🎉

    API breaking changes

    • Designable protocols have been changed to class only protocols. #463 by @SD10

    Enhancements

    • Introduce Custom MaskType, you can now use MaskDesignable with custom masks. #465 by @lastmove
    • Add Unit Testing for Project. See #434 for current coverage. by @SD10

    Bugfixes

    • AnimatableTextField won't override anymore the default border if no custom one set. #457 by @tbaranes
    • Make placeholderColor working with placeholderText AND placehodler. It will keep the current priorirty: placeholderText > placehodler. #459 by @tbaranes
    • Fix FillDesignable protocol to set fillColor for UICollectionViewCell. #462 by @SD10
    • Fixed AnimatableTextField interface update when using it programatically #458 by @tbaranes
    • Replace CGFloat.pi with CGFloat(Double.pi) for ActivityIndicatorShape, which fixes missing activity indicator animations on 32 bit devices. #470 by @broadwaylamb
    • Fix ignoring the delay property for UIView animations #472 by @broadwaylamb
    Source code(tar.gz)
    Source code(zip)
  • 4.0.0(Apr 20, 2017)

    Happy to announce IBAnimatable 4.0! The theme of this major release was animations. By focusing on this, we ended with a nice new APIs which make your daily animations even easier to do. Since it introduces breaking changes, you can take a look at the migration guide what change for you. That's not all! This version is also improving masks, presentations, corners, introducing new features such as designable refresh control, animatable tabbar, and of course a few bug fixes. Just take a look at the full list below, this release is huge!

    Thanks to all the contributors who are making IBAnimatable better! Most of credits go to @lastMove and @tbaranes, also thanks to @SD10 and @DanielAsher, @ashchan, @phimage, @mmadjer and @broadwaylamb!

    API breaking changes

    • Introducing new promise-like animation APIs. Check out the migration guide. #385 by @lastmove and @tbaranes
    • CornerSide's swift3 migration leftovers: renaming .AllSides to .allSides. If you were setting programmatically a cornerSide to your view, you will just have to lowercase the A. #409 by @tbaranes
    • AnimatableSlider inherit from UISlider. #417 by @phimage
    • Replace all SystemAnimator classes with SystemTransitionAnimator #427 by @SD10
    • PresentationDesignable now supports contextFrameForPresentation which allow you to present a controller with a custom configuration over another instead of being in fullscreen. Imitates UIModalPresentationStyle.currentContext. #385 by @tbaranes
    • Transition Animator classes initializer parameter changed from transitionDuration -> duration. #446 by @SD10

    Enhancements

    • Conserve custom layer mask when using Animatable* instead of removing them #407 by @DanielAsher
    • Add support for corner on AnimatableTableViewCell. #403 by @tbaranes
    • Make images of AnimatableSlider designable. #417 by @phimage
    • Add RefreshControlDesignable to make UIRefreshControl customization available in Interface Builder. Currently supported by UITableViewController and UITableView. #418 by @phimage and #429 by @tbaranes
    • Replace all SystemAnimator classes with SystemTransitionAnimator. #427 by @SD10
    • Add GradientDesignable to DesignableNavigationBar. #437 by @phimage
    • Add AnimatableTabBarController to support custom transition animations. #443 by @phimage

    Bugfixes

    • Make corner sides case insensitive. #394 by @mmadjer
    • Frame is converted to window coordinate space to fix miscalculations in computed values (used with slideOut, ...). #412 by @redent
    • Reset destination view's transform property to CGAffineTransform.identity after a slide transition completes. #432 by @broadwaylamb
    • Fixed {Flip,Turn,Fold}Animator which was resulting in broken transitions. Thanks to@phimage for the fix. #441 by @tbaranes
    Source code(tar.gz)
    Source code(zip)
  • 3.1.3(Feb 22, 2017)

    Enhance to the library to support gradient colours and fix some small issues like translation coordinates, Playground file, the border state. And make PresentationDesignable be public which allow the user to customise the presentation animation in code.

    Most of credits go to @tbaranes 👍👍👍 , also thanks to @emcphersonburke and @mikhailmulyar

    3.1.3

    API breaking changes

    None

    Enhancements

    • New gradient startPoint: .custom(startX, startY, endX, endY). #380 by @tbaranes
    • Introducing borderType, find all the information in the documentation #389 by @tbaranes

    Bugfixes

    • Fix slide(.out, *) and squeeze(.out, *) translation coordinates #379 by @tbaranes
    • Fix No such module IBAnimatable when attempting to run the Playground #251 and #391 by @emcphersonburke
    • Fix custom presentation animations #393 by @tbaranes
    • Fix border state when trying to reset a valid border #398 by @tbaranes
    • Make PresentationDesignable usable outside of IBAnimatable #402 by @tbaranes
    Source code(tar.gz)
    Source code(zip)
  • 3.1.2(Dec 18, 2016)

    This is release 3.1.2, 🎉🎉🎉 thanks to @mmadjer for fixing corner radius issue and adding support for AnimatableCollectionViewCell and using Swift Enum as key for presentation and transition cache. Thanks to @tbaranes for updating Swift Lint. Thanks to @gkye for fixing Swift Lint warnings.

    3.1.2

    API breaking changes

    None

    Enhancements

    • Add support for corner and shadow on UICollectionViewCell. [#368]https://github.com/IBAnimatable/IBAnimatable/pull/368
    • Use Swift Enum as key in our internal presentation and transition cache. #360

    Bugfixes

    • Fix initial cornerSide rendering issue. #367
    Source code(tar.gz)
    Source code(zip)
  • 3.1.1(Nov 22, 2016)

    Thanks to @bauermusic for reporting this issue and thanks to @tbaranes for fixing it 👍

    API breaking changes

    None

    Enhancements

    None

    Bugfixes

    • Make PresentationPresenterManager and TransitionPresenterManager shared property public again. #364
    Source code(tar.gz)
    Source code(zip)
  • 3.1(Nov 21, 2016)

    Thanks to @mmadjer , we can support multiple sides for corner radius now.

    API breaking changes

    None

    Enhancements

    • Add cornerSide to CornerDesignable to support multiple sides for corner.

    Bugfixes

    None

    Source code(tar.gz)
    Source code(zip)
  • 3.0.1(Oct 23, 2016)

  • 2.8.2(Oct 23, 2016)

  • 3.0(Sep 22, 2016)

    IBAnimatable 3.0 is the major release to support Swift 3 🎉. Special thanks to @lastMove and @tbaranes .

    @lastMove developed the new Swift enum system and improved the playground demo app. @tbaranes cleaned up most of the issues and maintained the version 3 PRs and issues.

    API breaking changes

    • This version follows Swift 3 API Design Guidelines and contains a lot of breaking changes from version 2.x. Please check out [IBAnimatable 3.0 Migration Guide](Documentation/IBAnimatable 3.0 Migration Guide.md) for more information about how to migrate your project to 3.0.

    Enhancements

    • Complete Swift 3 Compatibility #221
    • New Swift enum system #218

    Bugfixes

    • Fix borderSides #280
    • Fix blur effect view #302

    All issues associated with this version can be found using this filter.

    Source code(tar.gz)
    Source code(zip)
  • 2.8.1(Sep 16, 2016)

    This is the last major version for Swift 2.3 / 2.2. New features will be added to master (supports Swift 3).

    API breaking changes

    None

    Enhancements

    Upgrade to Swift 2.3

    Bugfixes

    None

    Source code(tar.gz)
    Source code(zip)
  • 2.7(Sep 1, 2016)

    Release 2.7 is the last version to support Swift 2.2/2.3.

    Huge thanks to @tbaranes for implementing custom presentation transitions and activity indicator animations 👍 👍 👍

    API breaking changes

    • AnimatableStackView doesn't conform anymore to BlurDesignable
    • AnimatableScrollView doesn't conform anymore to BlurDesignable

    Enhancements

    Bugfixes

    • Fixed cornerRadius when used with a gradient #268
    • Remove previous vibrancy view when adding setting a new vibrancy. Previous bug: all the views was staying in the hierarchy #277
    • Fixed "Shadows not working with Mask type" issue #267
    Source code(tar.gz)
    Source code(zip)
  • 2.6(Jul 26, 2016)

  • 2.5(Jul 19, 2016)

    Release 2.5 has added some animations and added vibrancyBlurEffect to BlurDesignable. Thanks to @tbaranes 👍

    API breaking changes

    None

    Enhancements

    • Add vibrancyBlurEffect to BlurDesignable. Once specify the Vibrancy effect style, all subviews will apply this vibrancy effect #245
    • New animations: ZoomInvertIn and ``ZoomInvertOut` #249

    Bugfixes

    None

    Source code(tar.gz)
    Source code(zip)
  • 2.4(Jun 30, 2016)

    Release 2.4 has added some Animatable UI elements and fixed some small bugs.

    API breaking changes

    None

    Enhancements

    • New designable properties for UITextView: placeholder text and color #227
    • Add AnimatableSlider #228
    • Add AnimatableScrollView #232

    Bugfixes

    • Use UIBezierPath to mask Circle, which can fix a bug when using Circle mask with borderSide #234
    • Fix a bug for Polygon mask when the width is longer than the height. #234
    • Fix a crash when the parameters number of Wave mask is not 3. #234
    Source code(tar.gz)
    Source code(zip)
  • 2.3(Jun 6, 2016)

    This is a big release, we have added 52 transition animations. After this release transition animation APIs are stable.

    We also fixed some bugs and added some designable features.

    Great thanks to @tbaranes who ported all transitions from VCTransitionsLibrary and added parameters support for some transition animators.

    API breaking changes

    • Change PanFromLeft, PanFromRight, PanFromTop, PanFromBottom, PanHorizontally and PanVertically to Pan(Left), Pan(Right), Pan(Top), Pan(Bottom), Pan(Horizontal) and Pan(Vertical) for Pan gesture transition controller. #125
    • Refactor direction to fromDirection for system transition animators. Refactor TransitionFromDirection to TransitionDirection. #206
    • Refactor Fade, FadeIn and FadeOut to Fade(direction: TransitionDirection) in TransitionAnimationType. Use Fade(In) to replace FadeIn and use Fade(Out) to replaceFadeOut`.#209
    • Remove PresentFadeInSegue, PresentFadeInWithDismissInteractionSegue, PresentFadeOutSegue and PresentFadeOutWithDismissInteractionSegue, use PresentFadeSegue and PresentFadeWithDismissInteractionSegue instead. #209
    • Remove degree for SystemRotate since it only supports 90 degrees. #210

    Enhancements

    • Add ScreenEdgePanInteractiveAnimator to support ScreenEdgePan(Left), ScreenEdgePan(Right), ScreenEdgePan(Top), ScreenEdgePan(Bottom), ScreenEdgePan(Horizontal) and ScreenEdgePan(Vertical) for ScreenEdgePan gesture transition controller. #125
    • Support multiple sides for border #168
    • Add ExplodeAnimator to support Explode transition animation. It supports parameters Explode(xFactor, minAngle, maxAngle), if no specified, the default values are Explode(10, -10, 10). #155
    • Add FoldAnimator to support Fold transition animation. It supports parameters Explode(direction, nbFolds), if no specified, the default values are Fold(Left, 2). #155
    • Add PortalAnimator to support Portal transition animation. It supports parameters Portal(direction, zoomScale), if no specified, the default values are Portal(Backward, 0.8). #155
    • Add NatGeoAnimator to support NatGeo transition animation. It supports only a direction NatGeo(direction), if no specified, the default values are NatGeo(Left). #155
    • Add Turn to support Turn transition animation. It supports only a direction Turn(direction), if no specified, the default values are Turn(Left). #155
    • Add CardsAnimator to support Cards transition animation. It supports parameters Cards(direction), if no specified, the default values are Cards(Forward). #155
    • Add FlipAnimator to support Flip transition animation. It supports parameters Flip(direction), if no specified, the default values are Flip(Left). Currently only support Flip(Left) and Flip(Right). #155
    • Add ContainerTransition to manage transition animations between two UIViewController in a container
    • Add AnimatableCollectionViewCell #167
    • Add PinchInteractiveAnimator to support Pinch(Close), Pinch(Open) for Pinch gesture transition controller. #125
    • Add SlideAnimator to support Slide transition animation. It supports parameters Slide(direction, fade), if no specified, the default values are Flip(Left). #155
    • Add IBAnimatable Playground to demonstrate transitions and interactions. #204
    • Add Parallelogram mask. #207 - Parallelogram Mask support in Maskdesignable
    • Add popToRootViewController segue for poping to root ViewController of the NavigationController. #212

    Bugfixes

    • Use weak for the viewController in InteractiveAnimator to avoid retain cycle.
    • Fixed the right image of SideImageDesignable #176
    • Fix a bug to support single side of border for AnimatableTextField #179
    • AnimatorFactory and all the ***Animators can now be used / instantiate outside of IBAnimatable
    Source code(tar.gz)
    Source code(zip)
  • 2.2(Apr 4, 2016)

    API breaking changes

    • Change SystemPageCurlAnimator to SystemPageAnimator to support SystemPage(Curl) and SystemPage(UnCurl) transition animations.

    Enhancements

    • AnimatableLabel now conforms BorderDesignable
    • New transition animations #126:
      • SystemSuckEffect
      • SystemRippleEffect
      • SystemMoveIn
      • SystemPush
      • SystemReveal
      • SystemRotate to support:
        • SystemRotate(90)
        • SystemRotate(90ccw)
        • SystemRotate(180)
        • SystemRotate(180ccw)
        • => Note: It seems that only SystemRotate(90) is working as expected. CATransition issues?
      • SystemCameraIrisAnimator to support:
        • SystemCameraIris
        • SystemCameraIris(HollowOpen)
        • SystemCameraIris(HollowClose)
    • Use framework in demo app #149

    Bugfixes

    • Fix the sided borders issue #150
    • Fix the FromTop and FromBottom directions in system built-in animations #156
    Source code(tar.gz)
    Source code(zip)
  • 2.1(Mar 30, 2016)

    API breaking changes

    • Remove MaskDesignable public methods (#101):
      • Remove maskCircle(), use view.maskType = String(MaskType.Circle) instead
      • Remove maskStar(_:), use view.maskType = "Star(6)" instead
      • Remove maskPolygon(), use view.maskType = String(MaskType.Polygon) instead
      • Remove maskTriangle(), use view.maskType = String(MaskType.Triangle) instead
      • Remove maskWave(_:_:_:), use view.maskType = "Wave(up, 16, 40)" instead
    • Improve the options in TransitionAnimationType enum. (#137)
      • Remove SystemCubeFromLeft, use SystemCube(Left)
      • Remove SystemCubeFromRight, use SystemCube(Right)
      • Remove SystemCubeFromTop, use SystemCube(Top)
      • Remove SystemCubeFromBottom, use SystemCube(Bottom)
      • Remove SystemFlipFromLeft, use SystemFlip(Left)
      • Remove SystemFlipFromRight, use SystemFlip(Right)
      • Remove SystemFlipFromTop, use SystemFlip(Top)
      • Remove SystemFlipFromBottom, use SystemFlip(Bottom)

    Enhancements

    • Support Xcode 7.3 and Swift 2.2
    • Configurable mask polygon (sides) #112
    • Add SystemPageCurlAnimator to support SystemPageCurlFromTop and SystemPageCurlFromBottom transition animations #126
    • AnimatableLabel now conforms BorderDesignable and FillDesignable
    • Support Carthage 0.15.2 #131

    Bugfixes

    • Fixed a bug that was making GradientDesignable not filling the dedicated frame #129
    • Fixed a bug that was making MaskDesignable not filling the dedicated frame
    Source code(tar.gz)
    Source code(zip)
  • 2.0(Mar 20, 2016)

    API breaking changes

    • Remove DesignableViewController, use AnimatableViewController instead.

    Enhancements

    • New IBAnimatable icon 🎊
    • Add AnimatableNavigationController to support custom Push and Pop transition animations
    • Add AnimatableViewController to support custom Present and Dismiss transition animations
    • Add SystemCubeAnimator to support SystemCubeFromLeft, SystemCubeFromRight, SystemCubeFromTop and SystemCubeFromBottom transition animations
    • Add SystemFlipAnimator to support SystemFlipFromLeft, SystemFlipFromRight, SystemFlipFromTop and SystemFlipFromBottom transition animations
    • Add FadeAnimator to support Fade, FadeIn and FadeOut transition animations
    • Add CALayerExtension to simplify CALayer animations with completion closure.
    • Add Navigator to manage Push and Pop transition animations
    • Add Presenter to manage Present and Dismiss transition animations
    • Add PresentFadeSegue, PresentFadeInSegue and PresentFadeOutSegue for Present transition with Fade animations
    • Add PresentFadeWithDismissInteractionSegue, PresentFadeInWithDismissInteractionSegue and PresentFadeOutWithDismissInteractionSegue for Present transition with Fade animations and getsture interactions.
    • Add PanInteractiveAnimator to handle Pan interaction for Dismiss and Pop
    • Demo App can experiment all transition animations (tap on "Forget Password" button to see)

    Bugfixes

    • Fix potential crash when using GradientDesignable
    • Fix slideIn/Out animations on second screens (e.g. AirPlay)
    Source code(tar.gz)
    Source code(zip)
  • 1.2(Feb 16, 2016)

    Enhancements

    • Swift Package Manager support. #5
    • Predefined flat colors. #71
    • Customise mask draw from interface builder #50 #8 #76:
      • Star(6) -> draw star mask with 6 sides.
      • Wave(up,50,100) -> draw a wave up mask with 50 as width, and 100 as offset.
    • Makes BorderDesignable usable in playground
    • Add MoveTo and MoveBy animations #74

    Bugfixes

    • Fixed GradientDesignable rotation. #86
    • Fixed BorderDesignable after rotation.
    • Fixed mask star drawing bug. #95
    • Fixed the border color / width when used with a mask. #95
    Source code(tar.gz)
    Source code(zip)
  • 1.1(Feb 16, 2016)

    API breaking changes

    • Remove DesignableGradientView, use AnimatableView to configure gradient. #81 and #86

    Enhancements

    • New animations: Rotate, RotateCCW #51
    • New masks: Star, Triangle, Polygon, Wave
    • SidebarImage now support right images
    • Predefined gradients #24
    • iOS8 support #89

    Bugfixes

    • Fixed left gradient
    • Fixed slideOut / slideIn animations #46
    Source code(tar.gz)
    Source code(zip)
  • 1.0.1(Jan 13, 2016)

  • 1.0(Feb 16, 2016)

Owner
IBAnimatable
Design and prototype customized UI, interaction, navigation, transition and animation for App Store ready Apps in Interface Builder with IBAnimatable.
IBAnimatable
library performs interaction with UI interface

StartGravity: Agilie Team would like to offer you our new lightweight open-source library called AGInterfaceInteraction. Our library with the new inte

Agilie Team 157 Nov 29, 2022
Simple Interface Core Animation. Run type-safe animation sequencially or parallelly

Simple Interface Core Animation Sica can execute various animations sequentially or parallelly. Features Animation with duration and delay parallel /

CATS Open Source Softwares 1k Nov 10, 2022
A rapid prototype of UISwitch built with Swift and PaintCode.

LTJelloSwitch A cute UISwitch prototype built in about 8 hours. One of my co-worker gave me this concept last year. It was written in Objective-C and

Lex Tang 366 Aug 5, 2022
Navigation toolbar is a Swift slide-modeled UI navigation controller.

Navigation toolbar is a Swift slide-modeled UI navigation controller. We specialize in the designing and coding of custom UI for Mo

Ramotion 596 Nov 17, 2022
ChainPageCollectionView A custom View with two level chained collection views and fancy transition animation

ChainPageCollectionView A custom View with two level chained collection views and fancy transition animation. Demo Requirements iOS 9.0+ Xcode 8 Insta

Yansong Li 775 Dec 7, 2022
ZoomTransitioning provides a custom transition with image zooming animation and swiping the screen edge.

ZoomTransitioning Overview ZoomTransitioning provides a custom transition with image zooming animation. When you use this library with UINavigationCon

WorldDownTown 673 Dec 27, 2022
Transition animation for ViewController

XTransitionKit Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements iOS 9.0+ Swift 5

Leo 2 Dec 17, 2021
Review page interaction - handy and pretty way to ask for review

RPInteraction Overview Review page interaction - handy and pretty way to ask for review. Inspired by dribbble shot. Requirements iOS8 Installation RPI

Nurdaulet Bolatov 27 Jul 16, 2021
Swiftui-animation-observer - Track SwiftUI animation progress and completion via callbacks

SwiftUI Animation Observer Track SwiftUI animation progress and completion via c

Gordan Glavaš 9 Nov 5, 2022
An experiment for using SwiftUI's custom timing Animation to create an orbital-like animation.

Orbital-SwiftUI-Animation An experiment for using SwiftUI's custom timing curve to create an orbital-like animation. How it looks: How it works: Apply

Mostafa Abdellateef 7 Jan 2, 2023
SwiftUI-Text-Animation-Library - Text animation library for SwiftUI

⚠️ This repository is under construction. SwiftUI Text Animation Library Make yo

null 28 Jan 8, 2023
Emil 3 Jan 31, 2022
Cool wave like transition between two or more UICollectionView

CKWaveCollectionViewTransition This is a cool custom transition between two or more UICollectionViewControllers with wave-like cell animation. Could b

Cezary Kopacz 1.9k Oct 4, 2022
Keynote-style Magic Move transition animations

MagicMove All the magic of Keynote Magic Move transitions brought to iOS. Demo Magic Move Transition Spin Transition Fade Transition TODO MagicMove Tr

Patrick Reynolds 15 Sep 6, 2018
Create a smooth transition between any two SwiftUI Views

GZMatchedTransformEffect Create a smooth transition between any two SwiftUI Views. It is very similar to the built-in .matchedGeometryEffect() modifie

Gong Zhang 10 Nov 26, 2022
iOS framework for impressive transition animations between views.

CoreTransition iOS framework for impressive transition animations between views. Built using Swift, and supports a lot of animations to navigate to a

Ahmed Abdelkarim 4 Nov 17, 2022
Sample way of integrating animations into a design system for iOS app projects.

Animations in Design System The project presents a sample way of integrating animations into a design system for iOS developers. Project setup A sampl

Bulat Khabirov 1 Nov 26, 2021
Fluid - Use a declarative syntax to build your user interface using UIKit like SwiftUI

Fluid Fluid is powered by ResultBuilder and a custom layout engine. You can uses

HZ.Liu 13 Dec 9, 2022