6

UIImageView ベースのアニメーションを使用して、カスタム アクティビティ インジケーターを表示しています。次のコードは、これを設定する責任があります。

+ (void)startLoadingActivity:(UIViewController *)vc {
    vc.parentViewController.navigationItem.titleView = [UIImageView imageViewWithPath:@"loading_" count:10 duration:1.3 frame:CGRectMake(0, 0, 22, 22)];
}

UIImageView+Animationカテゴリの要点を次に示します。

Web リクエストを開始するたびにアクティビティ インジケーターを開始し、リクエストが完了するたびにtitleViewプロパティを に設定して停止しますnil

結果は次のとおりです。

わかった

request メソッドは-viewDidAppear:、View Controller のメソッドにも呼び出されます。

ただし、トランジション中にアニメーションが開始されるたびに、 の位置UIImageViewが間違っているように見えます。

次の結果は問題を示しています。

[グループ] ボタンの上にアクティビティ インジケーターがどのように表示されているかに注目してください。

コ

この問題はどこから来ているのですか?どうすれば解決できますか?

4

2 に答える 2

0

この質問は、問題の非常に優れたデモであり、回答は次 のとおりです。Stackoverflow title moves while push/pop of viewcontroller

簡単に言えば:

  1. UIView を使用する.autoresizingMask = UIViewAutoresizingFlexibleTopMargin
  2. "viewWillAppear:" で実行しない (viewDidLoad で実行 / DidAppear 以降で更新)
于 2017-08-07T11:09:14.370 に答える