一款灵动的动画标签栏类库:Ramotion/animated-tab-bar

jopen 9年前

一款灵动的动画标签栏类库。可在storyboard中直接使用,非常方便。Demo效果非常漂亮。递交仅一周时间,今天即在GitHub上以122颗星极速跃居到Swift分类第一的位置。tab-bar-icons-iphone-ramotion-animation-interface-design.gif

要求

  • iOS 7.0+
  • Xcode 6.1

安装

Just add the RAMAnimatedTabBarController folder to your project.

用法

  1. Create a new UITabBarController in your storyboard or nib.

  2. Set the class of the UITabBarController to RAMAnimatedTabBarController in your Storyboard or nib.

  3. For each UITabBarItem, set the class to RAMAnimatedTabBarItem.

  4. Add a custom image icon for each RAMAnimatedTabBarItem

  5. Add animation for each RAMAnimatedTabBarItem :

    • drag and drop an NSObject item into your ViewController
    • set its class to ANIMATION_CLASS (where ANIMATION_CLASS is the class name of the animation you want to use)
    • connect the outlet animation in RAMAnimatedTabBarItem to your ANIMATION_CLASSDemonstration video for step 5

包含的动画

  • RAMBounceAnimation
  • RAMLeftRotationAnimation
  • RAMRightRotationAnimation
  • RAMFlipLeftTransitionItemAniamtions
  • RAMFlipRightTransitionItemAniamtions
  • RAMFlipTopTransitionItemAniamtions
  • RAMFlipBottomTransitionItemAniamtions
  • RAMFrameItemAnimation

创建自定义动画

  1. Create a new class which inherits from RAMItemAnimation:

       class NewAnimation : RAMItemAnimation
  2. Implement the methods in RAMItemAnimationProtocol:

      // method call when Tab Bar Item is selected    override func playAnimation(icon : UIImageView, textLable : UILabel) {      // add animation    }      // method call when Tab Bar Item is deselected    override func deselectAnimation(icon : UIImageView, textLable : UILabel, defaultTextColor : UIColor) {      // add animation    }      // method call when TabBarController did load    override func selectedState(icon : UIImageView, textLable : UILabel) {      // set selected state      }
  3. Example:

class RAMBounceAnimation : RAMItemAnimation {        override func playAnimation(icon : UIImageView, textLable : UILabel) {          playBounceAnimation(icon)          textLable.textColor = textSelectedColor      }        override func deselectAnimation(icon : UIImageView, textLable : UILabel, defaultTextColor : UIColor) {          textLable.textColor = defaultTextColor      }        override func selectedState(icon : UIImageView, textLable : UILabel) {          textLable.textColor = textSelectedColor      }        func playBounceAnimation(icon : UIImageView) {            let bounceAnimation = CAKeyframeAnimation(keyPath: "transform.scale")          bounceAnimation.values = [1.0 ,1.4, 0.9, 1.15, 0.95, 1.02, 1.0]          bounceAnimation.duration = NSTimeInterval(duration)          bounceAnimation.calculationMode = kCAAnimationCubic            icon.layer.addAnimation(bounceAnimation, forKey: "bounceAnimation")      }  }

项目主页:http://www.open-open.com/lib/view/home/1417099279518