SwiftyGlyphs 0.1.8

SwiftyGlyphs 0.1.8

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2016年8月
SPM支持 SPM

snowpunch 维护。



  • Woodie Dovich

SwiftyGlyphs

特性

  • 动态生成字符资源。
  • 保存字体颜色、样式和间距作为单独的透明 PNG。
  • 可选生成 SKSpriteNode 字符生成 SKActions。

用法

动画字符数组。

alt tag

import UIKit
import SwiftyGlyphs

class ViewController: UIViewController {
   var swiftyLabel = SwiftyGlyphs(fontName: "MarkerFelt-Wide", size:24)

   override func viewDidAppear(animated: Bool) {
      super.viewDidAppear(animated)

      swiftyLabel.text = "SwiftyGlyphs!"
      swiftyLabel.setLocation(self.view, pos: CGPoint(x:0,y:100))
      swiftyLabel.centerTextToView()

      exampleAnimation(swiftyLabel.getGlyphs())
   }

   func exampleAnimation(glyphs:[Glyph]) {
      var delay = 1.0
      for glyph in glyphs {
         UIView.animateWithDuration(0.5, delay: delay, options: [.Repeat, .CurveEaseInOut, .Autoreverse], animations: {
            glyph.imgView.center.y = 140
            glyph.imgView.transform = CGAffineTransformMakeRotation(CGFloat(-M_PI))
         }, completion: nil)
         delay += 0.01
     }
   }
}

SpriteKit 用法

需要 SKView。在这个例子中,我在 storyboard UIViewController 中添加了一个 UIView,然后将其自定义为 SKView 并将其拖到 IBOutlet 上。

alt tag

import UIKit
import SpriteKit
import SwiftyGlyphs

class ViewController: UIViewController {

   @IBOutlet weak var skview: SKView!
   var spriteLabel = SpriteGlyphs(fontName: "Copperplate-Light", size:24)

   override func viewDidAppear(animated: Bool) {
      super.viewDidAppear(animated)

      spriteLabel.text = "SpriteKit Baby!!"
      spriteLabel.setLocation(skview, pos: CGPoint(x:0,y:30))
      spriteLabel.centerTextToView()

      spriteKitAnimation(spriteLabel.getSprites())
    }

    func spriteKitAnimation(sprites:[SKSpriteNode]) {

      let moveSeq = SKAction.sequence([
         SKAction.moveBy(CGVector(dx:30,dy:0), duration: 0.3),
         SKAction.moveBy(CGVector(dx:0,dy:30), duration: 0.5),
         SKAction.moveBy(CGVector(dx:-30,dy:0), duration: 0.2),
         SKAction.moveBy(CGVector(dx:0,dy:-30), duration: 0.3),
         SKAction.moveBy(CGVector(dx:0,dy:30), duration: 0.3),
         SKAction.moveBy(CGVector(dx:0,dy:-30), duration: 0.4),
      ])
      moveSeq.timingMode = .EaseIn

      let rotationSeq = SKAction.sequence([
         SKAction.rotateToAngle(CGFloat(M_PI), duration: 1),
         SKAction.rotateToAngle(0, duration: 2.3),
      ])
      rotationSeq.timingFunction = snappyEaseOut

      var delay = 0.0
      for glyphSprite in sprites {
         let delaySeq = SKAction.sequence([Act.waitForDuration(delay),rotationSeq])
         let group = SKAction.group([moveSeq,delaySeq])
         group.timingMode = .EaseInEaseOut
         let repeatAction = SKAction.repeatActionForever(group)
         glyphSprite.runAction(repeatAction)
         delay += 0.01
      }
   }

   func snappyEaseOut (t:Float) -> Float {
      return (t == 1.0) ? t : 1.0 - pow(2.0, -10.0 * t)
   }
}

安装

SwiftyGlyphs 通过 CocoaPods 提供。要安装,请在 Podfile 中添加以下行

pod "SwiftyGlyphs"
手动安装(复制 4 个文件)

SwiftyGlyphs.swift, ImageExtractor.swift, Glyph.swift, SpriteGlyphs.swift

作者 & 许可证

Woodie Dovich, [email protected]

SwiftyGlyphs 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。