2017-12-13 16 views
1

シーンにUIActivityIndi​​catorViewを追加して正常に動作しました。次に、小さなコンテナを追加し、その上にアクティビティインジケータを表示しようとしました。UIActivityIndi​​catorViewを正しく配置することができません

これは私のコードです。

func showActivityIndicator(uiView: UIView) { 
    let container: UIView = UIView() 
    container.frame = CGRect(x: 0.0, y: 0.0, width: 80.0, height: 80.0); 
    container.center = uiView.center 
    container.backgroundColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.5) 

    let activityIndicator = UIActivityIndicatorView() 
    activityIndicator.frame = CGRect(x: 0.0, y: 0.0, width: 40.0, height: 40.0); 
    activityIndicator.center = uiView.center 
    activityIndicator.hidesWhenStopped = true 
    activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray 

    container.addSubview(activityIndicator) 
    uiView.addSubview(container) 

    activityIndicator.startAnimating() 
} 

コンテナビューは画面の中央に表示されますが、アクティビティインジケータはありません。デバッグビュー階層をチェックすると、アクティビティインジケータが右下のビューの外側に表示されます。誰かが私がコンテナを追加した後にそこで終わった理由を説明してもらえますか?そして、どうすればそれを正しく配置できますか?

ありがとうございました。

答えて

1

問題は、これは動作します。この

activityIndicator.center = CGPoint(x: container.frame.size.width/2,y: container.frame.size.height/2) 
0

を試してみてくださいコード

activityIndicator.center = uiView.center 

以下であり:

func showActivityIndicator(uiView: UIView) { 
     let container: UIView = UIView() 
     container.frame = CGRect(x: 0.0, y: 0.0, width: 80.0, height: 80.0); 
     container.center = uiView.center 
     container.backgroundColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.5) 

     let activityIndicator = UIActivityIndicatorView() 
     activityIndicator.center = container.center 
     activityIndicator.hidesWhenStopped = true 
     activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray 

    container.addSubview(activityIndicator) 
    uiView.addSubview(container) 

    activityIndicator.startAnimating() 
} 
+0

いいえ、これは/動作しませんでしたしません。関数 "container.center = uiView.center"の3行目。 – SKT

関連する問題