2016-10-20 7 views
0

UIViewの拡張子を作成してActivityIndicatorViewを作成し、サブビューとしてUIApplicationWindowに追加しました。デバイスが回転すると、UIViewControllerも回転し、これはActivityIndicatorViewではありません。アプリケーションウィンドウにサブビューとして追加されたUIViewは、デバイスの回転時には回転しません

internal extension UIView{ 

func showActivityViewWithText(text: String?) -> UIView{ 

    let window = UIApplication.sharedApplication().delegate?.window!! 
    let baseLineView = window!.viewForBaselineLayout() 

    let locView = UIView(frame:window!.frame) 
    locView.backgroundColor = UIColor.clearColor() 
    locView.center = window!.center 

    baseLineView.addSubview(locView) 
    baseLineView.bringSubviewToFront(locView) 

    let overlay = UIView(frame: locView.frame) 
    overlay.backgroundColor = UIColor.blackColor() 
    overlay.alpha = 0.35 

    locView.addSubview(overlay) 
    locView.bringSubviewToFront(overlay) 

    let hud = UIActivityIndicatorView(activityIndicatorStyle: .WhiteLarge) 
    hud.hidesWhenStopped = true 
    hud.center = CGPoint(x: locView.frame.size.width/2, 
         y: locView.frame.size.height/2) 

    hud.transform = CGAffineTransformMakeScale(1, 1) 
    hud.color = UIColor.redColor() 
    hud.startAnimating() 

    locView.addSubview(hud) 
    locView.bringSubviewToFront(hud) 
} 

答えて

2

誤った自動サイズ変更のマスクに問題がある可能性がありますか?追加しよう:

hud.autoresizingMask = [ .flexibleTopMargin, .flexibleBottomMargin, .flexibleLeftMargin, .flexibleRightMargin ] 

を理由に、あなたのhudlocViewのために必要とされるlocViewautoresizingMaskのサブビューですあまりにも私は考えます。

+0

'locores'に' autoresizingMask'を追加することでそれができました。ありがとう。 – Mathews

関連する問題