info

Home
[Swfit]UIView Extension #5  @ App Develop , Swift 2016年3月30日
UIView Extension #5
func fade(fadein:Bool, duration:CGFloat=0.3, operateHidden:Bool=true){
    if operateHidden {
        self.hidden = false
    }
    UIView.setAnimationBeginsFromCurrentState(true)
    UIView.animateWithDuration(NSTimeInterval(duration), delay: 0.0, usingSpringWithDamping: 1.0, initialSpringVelocity: 0.0, options: UIViewAnimationOptions.CurveLinear,
        animations: { () -> Void in
            self.alpha = (fadein) ? 1.0 : 0.0
        },
        completion: { (finish:Bool) -> Void in
            if operateHidden {
                self.hidden = !fadein
            }
        }
    )
}
[javascript]isArray  @ JavaScript 2016年2月24日
isArray
var isArray = function(target){
	return getTypeString(target) == 'array';
};
var getTypeString = function(target){
	if(target == null){
		return "null";
	}
	var toString = {}.toString;
	return (typeof target === "object" || typeof target === "function") ? toString.call(target).split(' ').pop().toLowerCase().replace(/\]/g,'') : typeof obj;
};
[javascript]orientationchange  @ JavaScript 2016年1月6日
iOSのorientationchange時の処理順
画面サイズ変更 -> resize -> orientationchange

Androidのorientationchange時の処理順
orientationchange -> 画面サイズ変更 -> resize
又は 画面サイズ変更 -> resize -> orientationchange
※端末(Androidのバージョン?)によってはこの順番の時もある

よってjsで端末回転時の処理をする際は下記のようにする。

デモ
var oEventCount = 0;
$(window).off('.ori').on('orientationchange.ori resize.ori',function(e){
	oEventCount++;
	if(oEventCount < 2){
		return;
	}
	oEventCount = 0;

	//do something
});

・resizeイベントだけで済む場合もある。
・iOSの場合、スクロールでステータスバーが出たり引っ込んだりした時にresizeイベントが走る

こっちのほうが良い場合も
var oEventId;
$(window).off('.ori').on('orientationchange.ori resize.ori',function(e){
	clearTimeout(oEventId);
	oEventId = setTimeout(function(){
		//do something
	},300);
});
[Swfit]UIView Extension #3  @ App Develop , Swift 2015年12月30日
UIView Extension #3
func goto(left:CGFloat,top:CGFloat, duration:CGFloat=0.4){
    UIView.setAnimationBeginsFromCurrentState(true)
    UIView.animateWithDuration(NSTimeInterval(duration), delay: 0.0, usingSpringWithDamping: 1.0, initialSpringVelocity: 0.0, options: UIViewAnimationOptions.CurveEaseInOut,
        animations: { () -> Void in
            self.left = left
            self.top = top
        },
        completion: { (finish:Bool) -> Void in
            
        }
    )
}
[Swift]UIImageView Extension #1  @ App Develop , Swift 2015年12月29日
UIImageView Extension #1
extension UIImageView {
    var paintColor:String{
        get{
            return ""
        }
        set{
            if self.image != nil {
                if newValue == "" {
                    self.paintByTintColor = false
                }else{
                    self.tintColor = Drawer.getUIColorByColorHex(newValue, alpha: 1.0, luminanceScale: 1.0)
                    self.paintByTintColor = true
                }
            }
        }
    }
    var paintByTintColor:Bool{
        get{
            return true
        }
        set{
            if newValue {
                self.image = self.image!.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
            }else{
                self.image = self.image!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            }
        }
    }
}
[Swift]UIView Extension #2  @ App Develop , Swift 2015年11月29日
UIView Extension #2
var className:String{
    get{
        return NSStringFromClass(self.dynamicType).componentsSeparatedByString(".").last!
    }
}
var fileName:String{
    get{
        return __FILE__.componentsSeparatedByString("/").last!
    }
}