33 lines
983 B
Swift
33 lines
983 B
Swift
//
|
|
// UITextFieldExtension.swift
|
|
// pass
|
|
//
|
|
// Created by Yishi Lin on 5/4/17.
|
|
// Copyright © 2017 Yishi Lin. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import UIKit
|
|
|
|
private var kAssociationKeyNextField: UInt8 = 0
|
|
|
|
extension UITextField {
|
|
@IBOutlet var nextField: UITextField? {
|
|
get {
|
|
return objc_getAssociatedObject(self, &kAssociationKeyNextField) as? UITextField
|
|
}
|
|
set(newField) {
|
|
objc_setAssociatedObject(self, &kAssociationKeyNextField, newField, .OBJC_ASSOCIATION_RETAIN)
|
|
}
|
|
}
|
|
|
|
func shake() {
|
|
let animation = CAKeyframeAnimation(keyPath: "transform.translation.x")
|
|
animation.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.linear)
|
|
animation.repeatCount = 3
|
|
animation.duration = 0.2/TimeInterval(animation.repeatCount)
|
|
animation.autoreverses = true
|
|
animation.values = [3, -3]
|
|
layer.add(animation, forKey: "shake")
|
|
}
|
|
}
|