0
画面に常に表示されるアプリケーション用のフローティングビューを作成しました。UIViewの半分を画面外にする
ここでは、3〜4秒間インタラクティブに表示されているときに、画面の半分を画面外にしたいと考えています。私はNSTimer
を使ってこのビューを隠すべきだと思いますが、それは問題ではありません。
このビューのorigin.x
を画面外に移動するにはどうすればよいですか?
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenX = screenRect.origin.x;
[self setFrame:CGRectMake(-screenX - size.width, 0, size.width, size.height)];
しかし、それは動作しません:私はこのように私のinitWithSuperView
にフレームを設定しようとしました。希望の結果を得るにはどうすればいいですか?詳細については、下の画像を参照してください。
なぜdispatch_async - mainQueue? –
@Ahmad UI操作はメインスレッドでのみ提供する必要があるためです。 –
:) animateWithDurationはメインスレッドをブロックしません。それは分離されたキューにイメージをダウンロードするのではなく、その結果をメインスレッドのUIコンポーネントに反映させることです。自分で試してみてください。 –