Twitter style Splash Screen View. Grows to reveal the Initial view behind

Overview

CBZSplashView

[![CI Status](http://img.shields.io/travis/Callum Boddy/CBZSplashView.svg?style=flat)](https://travis-ci.org/Callum Boddy/CBZSplashView) Version License Platform

Inspired by the Twitter Splash screen.

Create a splash view not dissimilar to the one Twitter use.

Just drop in your raster/vector logo and choose a background color and you are ready to go.

I have also added some customization options if you are that way inclined.

Twitter: @callumboddy

Easy as pie:

  • Using a rasterized image:
  UIImage *icon = [UIImage imageNamed:kMyIcon];
  UIColor *color = [UIColor colorWithHexString:kMyColor];
  CBZSplashView *splashView = [CBZSplashView splashViewWithIcon:icon backgroundColor:color];
  
  // customize duration, icon size, or icon color here;
  
  [self.view addSubview:splashView];
  [splashView startAnimation];
  • Using a vector image:
  UIBezierPath *icon = [UIBezierPath myIcon]; // Generate path from vector using something like paintCode
  UIColor *color = [UIColor colorWithHexString:kMyColor];
  CBZSplashView *splashView = [CBZSplashView splashViewWithBezierPath:icon backgroundColor:color];
  
  // customize duration, icon size, or icon color here;
  
  [self.view addSubview:splashView];
  [splashView startAnimation];

or you can animate on completion if you want to..

  [self downloadLoadsOfAmazingContentWithCompletion:^(BOOL success, NSError *error) {
    [splashView startAnimation];
  }];

Installation

CBZSplashView is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'CBZSplashView', '~> 1.0.0'

Coming Soon

  • creating new and unique transitions to select from

  • adding support for a background image.

  • adding support for colorWithPatternImage

  • a vector based implementation, closer to the twitter implementation

  • If you would like to request a new feature, feel free to raise as an issue.

Updates

1.0.0

  • feature: full support for bezier paths - which is awesome. Massive thanks to @Mazyod
  • cleanliness
  • bugfixes

0.1.1:

  • feature: added propery to manipulate the icon size, eg. splashView.iconStartSize = CGSizeMake(200, 200);

  • feature: added propery to manipulate the icon color, eg. splashView.iconColor = [UIColor redColor];

  • feature: added propery to manipulate the animation Duration, eg. splashView.animationDuration = 2; (in seconds)

  • change: animtion no longer fires automatically, you must call [splashView startAnimation];

0.1.0 - done on the train, very messy

Author

Callum Boddy, [email protected]

License

CBZSplashView is available under the MIT license. See the LICENSE file for more info.

Comments
  • podspec issue

    podspec issue

    Hi. Thank you for your fantastic library. This pull request fixes some problem. I hope it will be nice for you. FIXED: https://github.com/callumboddy/CBZSplashView/issues/14

    opened by akiroom 7
  • CocoaPods Issue

    CocoaPods Issue

    Either there's files missing when installed through CocoaPods or your example code is wrong? As this doesn't seem to work:

    CBZSplashView *splashView = [CBZSplashView splashViewWithIcon:icon backgroundColor:color];

    opened by alexsaidani 2
  • CocoaPod is outdate, have to use :head for examples to work

    CocoaPod is outdate, have to use :head for examples to work

    Thanks for the great Pod. Just an FYI, in order to use your current examples, I have to set my pod to :head . The 1.0 seems to not support the splashViewWithBezierPath method.

    opened by neilabdev 1
  • Update git ignore

    Update git ignore

    Hey,

    Thanks for the great component. I noticed the gitignore isn't covering all the cases, so I updated that.

    Please take a look here for more info: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects

    Maz

    opened by Mazyod 1
  • Vector mask animation

    Vector mask animation

    With this, the vector based masking is implemented. An important note, though, is now the vector based splash uses CAAnimation while the raster splash uses UIView animation blocks. It's probably better to use the CAAnimation for both, to achieve a consistent affect.

    opened by Mazyod 0
  • Issue when adding the splash view in viewDidLoad

    Issue when adding the splash view in viewDidLoad

    Hi,

    Right now, sometimes you can only add the view in viewDidAppear. Trying to add it in viewWillAppear or viewDidLoad would not work, since the the key window is not yet available.

    To solve this, I have changed the frame code to [[UIScreen mainScreen] bounds]. Now, the splash view can be added at an earlier stage of the app launch without any issues.

    Maz

    opened by Mazyod 0
  • (Suggestion) Mention the need to

    (Suggestion) Mention the need to "reverse" bezier paths to get a "cut out"

    As a suggestion, I spent an entire day playing around with a bunch of bezier paths, some complicated, some very simple, until it hit me, the direction of the winding would affect the result.

    So, it might be worth mentioning, if you're not seeing any results using bezier paths, try using reversing (Swift)/beziePathByReversingPath (Objective C) and use the resulting path

    opened by RustyKnight 0
  • Icon properties not working!

    Icon properties not working!

    __unused UIImage *icon = [UIImage imageNamed:@"circle"]; //UIBezierPath *bezier = [UIBezierPath twitterShape]; UIColor *color = kATOrangeColor;

    self.splashView = [CBZSplashView splashViewWithIcon:icon backgroundColor:color];
    self.splashView.iconColor = [UIColor purpleColor];
    self.splashView.animationDuration = 1.1;
    
    
    [self.view addSubview:self.splashView];
    

    Not working!

    opened by suhailrashidbhat 2
  • Allows user to modify scale transforms

    Allows user to modify scale transforms

    Same pull request as this one but cleaner.

    It allows user to modify the scale tranforms, which was usefull for me.

    I remove the Pod folder and indicate in the podspec to use the Classes folder (Pod folder was a duplicate of Classes). Feel free to tell me if I was doing wrong :), but from my point of view this was a mistake that could lead to problems.

    opened by rvi 0
  • Update cocoapod to require ios 7

    Update cocoapod to require ios 7

    The startAnimation method uses + (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampingRatio initialSpringVelocity:(CGFloat)velocity options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion NS_AVAILABLE_IOS(7_0); which is only available in iOS7 but the cocoapod specifies only ios6 is required.

    opened by theill 1
Owner
Callum Boddy
Callum Boddy
Create custom animated splash views similar to the ones in the Twitter, Uber and Ping iOS app.

SKSplashView SKSplashView is a simple class to create beautiful animated splash views for transitioning between views. Perfect as a launch screen whil

Sachin Kesiraju 474 Nov 17, 2022
A Splash view that animates and reveals its content, inspired by Twitter splash

RevealingSplashView A Splash view that animates and reveals its content, inspired by the Twitter splash. ⭐ Features Customizable reveal icon image. Cu

Chris Jimenez 1.2k Jan 4, 2023
A Splash view that animates and reveals its content, inspired by Twitter splash

RevealingSplashView A Splash view that animates and reveals its content, inspired by the Twitter splash. ⭐ Features Customizable reveal icon image. Cu

Chris Jimenez 1.2k Dec 17, 2022
Create custom animated splash views similar to the ones in the Twitter, Uber and Ping iOS app.

SKSplashView SKSplashView is a simple class to create beautiful animated splash views for transitioning between views. Perfect as a launch screen whil

Sachin Kesiraju 474 Nov 17, 2022
Coffee App Splash Screen made with SwiftUI.

SplashScreen-CoffeeApp Coffee App Splash Screen made with SwiftUI. SplashScreen - Code struct ContentView: View { @State var splashScreen = true

Shreyas Bhike 18 Oct 2, 2022
This is an initial prototype of the UI for demoing purposes

Mirage Demo good luck - fiig This is the original demo prototype for Mirage (notice the old spelling "Miirage", I know ?? ). The project is built usin

Mirage 3 Dec 2, 2021
Protocol to handle initial Loadings, Empty Views and Error Handling in a ViewController & views

StatusProvider Protocol to handle initial Loadings, Empty Views and Error Handling in a ViewController & views CocoaPods Podfile pod 'StatusProvider'

Mario Hahn 887 Dec 22, 2022
MemojiView - MemojiView works by having a TextView behind the actual View for user input

MemojiView Since there is no official API for using the users Memoji's i have built a simple view to retrieve them and use them to your liking. Memoji

Emre Armagan 9 Nov 6, 2022
Elissa displays a notification on top of a UITabBarItem or any UIView anchor view to reveal additional information.

Elissa Attach a local notification to any UIView to reveal additional user guidance. Usage Example Per default, Elissa will try to align to the center

null 169 Aug 14, 2022
This "Calculator" application is a simple one screen design of calculator screen i have made this single screen design application just to practice AutoLayout concepts.

Calculator Layout This "Calculator" application is a simple one screen design of calculator screen i have made this single screen design application j

Chetan Parate 1 Oct 29, 2021
The iOS framework that grows only as fast as its documentation

Nimbus is an iOS framework whose feature set grows only as fast as its documentation. Support status Nimbus is in a supported maintenance mode, meanin

featherless 6.5k Nov 30, 2022
A light-weight UITextView subclass that automatically grows and shrinks.

RSKGrowingTextView A light-weight UITextView subclass that automatically grows and shrinks based on the size of user input and can be constrained by m

Ruslan Skorb 939 Dec 21, 2022
An auto-layout base UITextView subclass which automatically grows with user input and can be constrained by maximal and minimal height - all without a single line of code

Deprecated This library is no longer maintained and is deprecated. The repository might be removed at any point in the future. MBAutoGrowingTextView A

Matej Balantič 125 Jan 13, 2022
The Discord API implementation behind Swiftcord, implemented completely from scratch in Swift

DiscordKit The Discord API implementation that powers Swiftcord This implementation has fully functional REST and Gateway support, but is mainly geare

Swiftcord 71 Dec 20, 2022
Twitter-Client - A twitter client that allow users to view tweets on their iphone

Project 3 - Twitter Client Name of your app is a basic twitter app to read your

null 0 Feb 7, 2022
Circular reveal animations made easy

This library was created to allow developers to implement the material design's reveal effect. You can simply use this component to reveal and unverea

T-Pro 25 Dec 7, 2022
Plugin for Xcode to integrate the Reveal App to your project automatic.

Reveal-Plugin-for-Xcode Plugin for Xcode to integrate the Reveal App to your project automatic(Without any modifications to your project). Please note

Eric 229 Jun 29, 2022
A SwiftUI button that expands to reveal more content.

CUIExpandableButton A SwiftUI button that expands to reveal more content. CUIExpandableButton is part of the Crystal UI framework (under developement)

Robert Cole 6 Dec 10, 2022
small iOS & ipadOS application written in SwiftUI and Combine, that fetches twitter users and tweets using Twitter's api

HomeTwitter Small iOS & ipadOS application written in SwiftUI and Combine, that fetches twitter users and tweets using Twitter's api. This is just a s

Sorin Miroiu 1 May 13, 2022
Twitter Kit is a native SDK to include Twitter content inside mobile apps.

Twitter will be discontinuing support for Twitter Kit on October 31, 2018. Read the blog post here. Twitter Kit for iOS Background Twitter Kit is a na

Twitter Archive 674 Dec 18, 2022