カスタムコントロールをプログラムでAutoLayoutビューの中央に配置する

JayVDiyk

HTTPリクエストを実行するたびに、このコントロールをアクティビティインジケーターとして使用しています

https://github.com/gontovnik/DGActivityIndi​​catorView

これが私がそれを呼ぶ方法です

    let activityIndicator: DGActivityIndicatorView = DGActivityIndicatorView();
    activityIndicator.backgroundColor = UIColor.clearColor();
    activityIndicator.frame = CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height);
    activityIndicator.size = 68;
    activityIndicator.tintColor = tintColor;
    //activityIndicator.type = DGActivityIndicatorAnimationType.BallClipRotatePulse;
    activityIndicator.startAnimating();

    view.addSubview(activityIndicator);

私はこれをviewDidLoadHTTPリクエストコードと一緒に呼び出します。

ただし、viewDidLoadでは自動レイアウトがまだレイアウトを完了していないため、これにより、activityIndi​​catorの位置が中央に配置されなくなります。

コードを配置することでこの問題を修正できviewDidAppear、activityIndi​​catorが正しく配置されます。

しかし、HTTPリクエストはviewDidAppearでのみ行われるため、これは悪いことです。これは貴重な1秒を無駄にしています。

コントロールを変更して、それ自体が中央に配置されるようにするにはどうすればよいですか?

このコントロールは、DGActivityIndi​​catorViewに精通していないObj-Cでコーディングされています。

JayVDiyk

コントロール自体の中でそれを行う方法を見つけました

- (void)layoutSubviews {
    [super layoutSubviews];

    if (self.layer.sublayers != nil) {
        self.frame = self.superview.frame;
        self.layer.position = (CGPoint){CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds)};
        self.layer.sublayers[0].position = (CGPoint){CGRectGetMidX(self.layer.bounds), CGRectGetMidY(self.layer.bounds)};
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

プログラムで制約のあるビューにカスタムボタンを追加する

分類Dev

すべてのビューコントロールにカスタムプロパティを追加する

分類Dev

プログラムでルート ビューをビュー コントローラーに追加すると、正しく配置されない

分類Dev

カスタムビューのコントローラーでカスタムIBActionを作成する

分類Dev

コントロールのテキストフィールド、ボタンなどを使用して迅速にカスタムビューをプログラムで作成する方法

分類Dev

カスタム フォントを使用してテキスト ビューで太字と斜体のスタイルを設定する (プログラムで)

分類Dev

プログラムでカスタムビューをScrollView(またはHorizontalScrollView)に配置する(スクロールなし)

分類Dev

マルチオートコンプリートテキストビューをalertdialog内の追加ボタンの上でスクロール可能にし、このタイプのカスタムアラートダイアログが必要です

分類Dev

プログラムでタブを切り替えるときにルートビューコントローラの変数をクリアする

分類Dev

dotNetインストールパッケージをWPFプログラムでローカルに配置する

分類Dev

XAMLで別のカスタムコントロール基本クラスを使用して、WPFでビュー内のカスタムコントロールをインスタンス化するにはどうすればよいですか?

分類Dev

ビューコントローラの背景にカスタムカラーを設定する方法

分類Dev

XMLビューでカスタムコントロールを使用する

分類Dev

カスタムJavaビュークラスをRelativeLayoutにプログラムでロードする方法

分類Dev

ビューコントローラの外部でプログラムでビューを作成する方法

分類Dev

アプリがバックグラウンドにあるときに、カスタムローカル通知ビューまたはカスタムアラートビューを表示するにはどうすればよいですか?

分類Dev

プログラムでカスタムイベントログビューを作成します

分類Dev

ビューモデルのサブプロパティの変更に対するWPFカスタムコントロールの再レンダリング

分類Dev

miltipleビューをプログラムで迅速に配置する

分類Dev

xcode / ios:モーダルビューコントローラーをプログラムで起動するときにデータを渡す方法

分類Dev

Android:プログラムでカスタムビューを描画する

分類Dev

ログインフォームをブートストラップで画面の中央に配置します

分類Dev

CAShapeLayerを使用して円を描画し、プログラムでカスタムUIViewの中央に配置する方法

分類Dev

iOS-プログラムで自動レイアウトを使用してUIViewをスーパービューの中央に配置します

分類Dev

カスタムセル画像ビュー画像を新しいビューコントローラに渡す

分類Dev

プログラムで別のビューコントローラー/シーンに移動する

分類Dev

Magentoのカスタムモジュールでカスタムコントローラーを呼び出す

分類Dev

プログラムでフラグメントレイアウトにカスタムビューを追加する

分類Dev

sitefinity(カスタムモジュール)コンテンツのコピーをプログラムで作成する適切な方法は何ですか?

Related 関連記事

  1. 1

    プログラムで制約のあるビューにカスタムボタンを追加する

  2. 2

    すべてのビューコントロールにカスタムプロパティを追加する

  3. 3

    プログラムでルート ビューをビュー コントローラーに追加すると、正しく配置されない

  4. 4

    カスタムビューのコントローラーでカスタムIBActionを作成する

  5. 5

    コントロールのテキストフィールド、ボタンなどを使用して迅速にカスタムビューをプログラムで作成する方法

  6. 6

    カスタム フォントを使用してテキスト ビューで太字と斜体のスタイルを設定する (プログラムで)

  7. 7

    プログラムでカスタムビューをScrollView(またはHorizontalScrollView)に配置する(スクロールなし)

  8. 8

    マルチオートコンプリートテキストビューをalertdialog内の追加ボタンの上でスクロール可能にし、このタイプのカスタムアラートダイアログが必要です

  9. 9

    プログラムでタブを切り替えるときにルートビューコントローラの変数をクリアする

  10. 10

    dotNetインストールパッケージをWPFプログラムでローカルに配置する

  11. 11

    XAMLで別のカスタムコントロール基本クラスを使用して、WPFでビュー内のカスタムコントロールをインスタンス化するにはどうすればよいですか?

  12. 12

    ビューコントローラの背景にカスタムカラーを設定する方法

  13. 13

    XMLビューでカスタムコントロールを使用する

  14. 14

    カスタムJavaビュークラスをRelativeLayoutにプログラムでロードする方法

  15. 15

    ビューコントローラの外部でプログラムでビューを作成する方法

  16. 16

    アプリがバックグラウンドにあるときに、カスタムローカル通知ビューまたはカスタムアラートビューを表示するにはどうすればよいですか?

  17. 17

    プログラムでカスタムイベントログビューを作成します

  18. 18

    ビューモデルのサブプロパティの変更に対するWPFカスタムコントロールの再レンダリング

  19. 19

    miltipleビューをプログラムで迅速に配置する

  20. 20

    xcode / ios:モーダルビューコントローラーをプログラムで起動するときにデータを渡す方法

  21. 21

    Android:プログラムでカスタムビューを描画する

  22. 22

    ログインフォームをブートストラップで画面の中央に配置します

  23. 23

    CAShapeLayerを使用して円を描画し、プログラムでカスタムUIViewの中央に配置する方法

  24. 24

    iOS-プログラムで自動レイアウトを使用してUIViewをスーパービューの中央に配置します

  25. 25

    カスタムセル画像ビュー画像を新しいビューコントローラに渡す

  26. 26

    プログラムで別のビューコントローラー/シーンに移動する

  27. 27

    Magentoのカスタムモジュールでカスタムコントローラーを呼び出す

  28. 28

    プログラムでフラグメントレイアウトにカスタムビューを追加する

  29. 29

    sitefinity(カスタムモジュール)コンテンツのコピーをプログラムで作成する適切な方法は何ですか?

ホットタグ

アーカイブ