5秒で視差効果があります。 iOS アプリの視差効果。 「simtsi」でのパノラマ写真

ゴロヴナ / グーグルプレイ

Appleがその癖のすべてのカテゴリを理解しようとしており、iPhoneへの変更のようにそのような機能をリリースしようとしていることは誰もが知っています。

それはよりコリスナであり、論理的に説明されて唖然とするかもしれません. それが何であり、どのようにアクティブ化できるかを理解しましょう。

iOSのruhuの変更点は?

iOS 7 の登場で多くの変更があったのかもしれませんが、そのうちの 1 つは画面の視覚的な奥行きの特徴でした。

あなたのiPhoneに特別な標準的なトレリスを置くと、ロシアでは悪臭が崩壊し、さらに効果的に見えます.

今年はまた、プログラムのアニメーションを改善し始めました。 また、トランジションのアニメーションやその他多くのことが改善されました。

coristuvacheviが単に何もしていない場合は、追加機能「ルフの変更」のためにすべてをオンにすることができます。 何が同じで、バッテリー充電のトローチを保護するのに役立ちます。

しばらくの間、電源を入れることについて話しましょう。

  • アニメーションは、標準のアドオン「天気」から取得されます。
  • すべての画面効果が再び変更されます。
  • エスパリエで説明した視差効果も含まれています。
  • まあ、他の標準的なプログラムもアニメーションに勝てなくなります。

この機能の基本的な本質を理解したと思います。機能を正しくアクティブにする方法、または必要に応じてオンにする方法について説明したら、次の部分に進みます。

iPhoneで変更をオフ/オフにする方法は?

この機能の大部分が古い建物や電話に見られるという事実の一部については、そのバッテリーはシステム内ですでに交換されています。


これは、iPhone のパフォーマンスを改善するために作業する必要があることを意味します。古いモデルを使用していて、iOS の残りの部分でロボットをスムーズに構築したくない場合。

さて、これで、動きを変更する機能の組み込みに進むことができます。

  1. yak i zavzhdi、私たちは入ります ナラシュトゥヴァンニャ- しゅかえもアイテム 主要;
  2. に行く ユニバーサル アクセスルフチェンジ;
  3. 似たような名前のバチモをポイントして、ヨガをアクティブにするだけで、緑色に変わります。


下部に、「効果的な修理 (自動)」と呼ばれるもう 1 つの項目をマークできます。 Naykrasche、shchob は zalishalas アクティブを獲得しました。

それをオンにすると、悪い日の場合、kshtaltバッグに効果を強制する必要がある場合、他の人の敬礼は、悪臭を放ちません。

私はすぐにiPhone 5Sで身もだえし、まるでiOS 10に切り替えるかのようにアクティベートします。

Apple は高性能コンポーネントを使用して、iPhone と iPad の妥協のないファームウェアに到達します。 ただし、ソフトウェアの装飾、アニメーション、およびオペレーティング システムのその他のネオボフヤズコフ機能は、ロボット モバイル デバイスの速度にマイナスの影響を与えます。 苦労する価値があるのは、トップガジェット自体ではありません。

最もリソースを節約する機能をオンにすることで、問題を解決できます。 Vikoristovuyuchi 標準オペレーティング システムにより、古いモデルの iPhone および iPad の生産性を向上させることができます。

Wiknut 検索スポットライト

2009 年には、天のマナがコリストゥヴァチ iPhone の頭に乗っていました。 iPhone OS の 3 番目のバージョンがリリースされ、Apple Phone に 100 もの新機能が追加されました。 Appleスマートフォンで初めて、「コピー、コピー、ペースト」、MMS、ユニバーサルスポットライト検索メカニズムなど、そのような音が一挙に登場しました。

残りの部分で飲み物を飲むことができます。ホーム画面のビーヤキー側にある獣までスワイプします。 スポットライトは、連絡先、メール、SMS、アドオン、音楽、カレンダー、そして主要なものの 1 つである結果の信頼性と正確性など、すべてのコンテンツのグローバル検索に他なりません。 問題は、Spotlight が常にモバイル デバイスのインデックスを作成しているため、OS のすべての変更を認識していることにあります。 これらの機能を使用すると、iPhone および iPad のファームウェア コードのアップグレードにアクセスできます。 [設定] -> [一般] -> [Spotlight を検索] に移動し、すべてのチェックボックスのチェックボックスをオンにします。

バックグラウンド ソフトウェア更新を無効にする

iOS 8 のアプリは、バックグラウンド モードの情報を取得できます。 機能はより陳腐ですが、バッテリーの充電も表示され、プロセッサの疲労が増します. メニューの [調整] –> [メイン] –> [コンテンツの更新] に移動し、バックグラウンドでのサービスの使用をオフにします。 この機能は再びオフにすることも、異なるプログラムを切り替えるために使用することもできます。

視差とマット効果を減らす

Apple は単独で、タペストリーの視差効果の作成に多くの時間を費やしました。これにより、3 次元効果が作成されます。 すべてを見るのは美しいですが、プロセッサ上のzayvogoのクリーム、tsya mozhlivistはもはや適合しません。 したがって、iOS 8 でトレリスが修正されると、「パースペクティブ」という用語は Wimk の位置に翻訳されます。

Apple のソフトウェア シェルの特別なシックさは、透明効果によるものです。 メイン インターフェイス上のボリューム ボールの効果を持つ iOS 8 の多くの要素。 これにより、マットの折り目の後ろにあるかのように、より低いものはすべてバラバラになります。 この効果は、リマインダー センター、ケア センター、イヤーブックのトップ パネルなど、あらゆる場所の OS で監視されます。 [調整] メニュー -> [全般] -> [ユニバーサル アクセス] -> [コントラストの強化] に移動して、UI の透明度を変更できます。 zamovchuvannyam remikach の後ろ 「Wimk」の位置に立つため、視認性が低下しました。 エフェクトを含めると、特に最新モデルではない場合、視覚的にシャープになります。

アニメーションをオンにする

Apple は長い間、「フラットな」iOS インターフェース向けに美しい疑似自明な効果を作成してきました。メニュー、アイコン、通知など、病んだときに見た目を簡単に変えることができます。 機能は、取るに足らないものを完了することであり、プロセッサー時間を保護します。 したがって、アドレス Nalashtuvannya -> Basic -> Universal access に移動し、「トラフィックの変更」項目を有効にします。

思い出の場所を呼ぶ

iPhone と iPad では、「片付け」オプションも使用できます。 あなたがここのオフィスで働いていることを示してください。一定時間後、あなたのスタイルが不適切な文書や書類によって徐々に嫌がらせを受け始めていることに気付くでしょう. 何してるの? そうです、あなたは清潔さと秩序をもたらし、より多くのお金を稼ぎ、より効果的に働くことができます. それらはiOSでも同じです。 スマートフォンやタブレットも、デスクトップ コンピューターと同様に、清潔に整頓された状態に保つ必要があります。

インストールされているプログラムのリスト、悪臭のようなデータの展開の手配は、オペレーティング システムの設定で確認できます。 基本を分割したいものについては、[統計] メニューに移動します。 iOS 8 ではプログラムの展開が表示され、拡張機能のメモリをすばやく拡張できます。

秋に、Apple はモバイル オペレーティング システム iOS 7 へのパブリック アクセスを発表しました。これには、革新的なデザインと優れた新機能とソフトウェア アップデートが含まれています。 革新は、再構築されたモダンな外観から始まり、使いやすさへのユニークなアプローチで終わる、より豊かになります. 残りの部分まで、ロズロブニキのように見えるパララックス効果のタイトルは、可動式の建物と共存する方法を変えます。

Apple は、この技術を次のように説明しています。

「iOS 7 は多くの豊かさを生み出します。 オペレーティング システムは、iPhone、iPad、iPod touch の最先端技術であり、iOS の機能をさらに拡張します。 リーディングとファンクショナルボールで粘土を作り、コンテンツをアレンジ。

Napіvprozoreはくすぶりながら、その場所の文脈との明らかなつながりを与えます。 そして、アニメーションとローミングへの新しいpidkhidは、最も単純なzavdannya豊かな派閥を奪います。

簡単に言えば、この技術の原理は次のとおりです。フラットなガラス パネル上で、ディスプレイと呼ばれる電話が三重の光を散乱させ、別棟から一気に空間に崩壊します。

視差と視点

人の視野にあるオブジェクトの世界を脳がどのように定義するかについての基礎の視差効果の原理。 オブジェクトが近づくほど、より多くのワインが与えられます。 まず第一に、彼らが私たちにオブジェクトを与えた場合、拡張のためのワインが少なくなります.

基本的な説明は、spryynyattya 脳遠近法の原理と、オブジェクトの可視キャンプの視差 є 変更に与えられましたが、遠方の灰はポストリガッハのキャンプで休眠しています。 たとえば、急いで急いでいる車や電車の真ん中にいる場合、近くにあるオブジェクトは、オブジェクトが遠くにあるかのように、より速く崩壊します。 正直に言うと、彼らは同じスウェーデンらしさを持っています。

他の視覚的なトリックに加えて、遠近法と視差は世界の認識において重要な役割を果たし、目が登録している視覚信号を推論して整理する能力を与えます.

電話へのミサイルの種類

iOS では、最初に宇宙探査用に設計されたため、視差効果はソフトウェア、つまりテクノロジ自体によって作成されます。

モバイル Apple デバイスの中央には、MEMS ジャイロスコープという名前のアタッチメントがあります。 泣いているメカニズム(人間の髪の毛よりも少ない)の真ん中に運ばれたVіnは、新しい電気信号に適用すると、建物が主な周波数で振動しました。 スマートフォン(またはタブレット)を3方向に巻くと、ジャイロスコープの中央を使用するメカニズムが、ニュートンの第1法則に従って向きの変化を修正します。

ジャイロスコープは、加速度計と呼ばれる他のセンサーと連携して、アタッチメントが空間内の位置の変化を非常に正確に認識して決定できるようにします。

ポストの位置の評価から始めて、より多くの人が電話を目の高さまで上げて、それを獲得するという事実に基づいて、iOSは電話のディスプレイの上部を私たちの視野として指定します, その瞬間,悪臭が一人のように動く場合。

グリビン効果を実装する数学は、アイドル時間で実行できます。 ソフトウェアのセキュリティに必要なのは、ディスプレイをさまざまな領域に整理してから、これらの領域を 1 つずつ移動することだけです。 コリストヴァッハの目の元の位置に基づいて移動します。 それでも、結果として、私はグリビーニの効果を生み出します。

WWDC 2013 カンファレンスの録画を見たことがあれば、iOS 7 のアイコンがこのように見えることを思い出すことができます。 私はさらにリアルに見えます。 Safariの同じ百とタブ。

iOS 7 のすべての機能がまだ一般に人気があるという事実に関係なく、Apple が新しい OS のすべての倉庫にパララックス効果をサブトリミングの付属品のリストに導入する可能性は十分にあります)。

iOS 7 での視差の仕組み:

モバイルアプリのデザインに視差を使用するというアイデアは新しいものではありません。 他の多くの人と同じように、それはウェブデザインの世界から私たちにもたらされましたが、すぐにますます広まりました. 視差は、デザインに深みと全体の威圧的な効果を与えます。 現時点では、Webアドオンの開発の詳細により、手が不足しているため、サイトのデザインにおけるパララックスの流行は沈静化しています. ただし、モバイルプログラム - tsezovsіmіnsharozmov。 モバイルデザインのパララックスは生きていますが、どこにも行くことができず、ロックの寄付を得ることができません 新しい iOS 7 デザイン !

この記事では、DVParallaxView コンポーネントについて説明し、iOS 7 のホーム画面のように、追加としてこのような視差効果を追加する方法を追加します。 .

どのように vlashtovanny 視差?

視差効果のメカニズムをよりよく理解し、構造化するために、物理学の厳しい世界に少し時間を割いてみましょう。 Tseは、電話の画面でヨガを確認するのに役立ちます.

父上、視差はどのように機能しますか? ヨガの本質はシンプルです。 視差は、空間内の 2 つの異なる点から保護されている、1 つの同じオブジェクトの位置の変化です。 現実世界でのポスポーザリガット効果は軽減できます。 必要なものはすべて - 背景の役割 (ブースの壁など) と、このアブラムシから身を守るオブジェクト (このアブラムシはあなたに近い)、下の背景 (明るい壁や木)。 壁から休憩を取って、リフターニー ストンプをガードする場合は、リフタルニー ストンプが壁に置き忘れられていることに注意する必要があります。 このような効果は視差と呼ばれます-ストブパの音、何が起こっているのか、注意点を動かすと明らかです。 あなたの近くに誰がいても、あなたのシフトの安全を確保する方が良いでしょう. まず第一に、重要なスタンドに stovp が表示され、再び壁を通り抜けようとすると、stovp は実質的に壁の音に邪魔されません。 私たちの目は、オブジェクトの豊富な兆候を評価し、それらからオブジェクトの場所の安全性を評価することに執着しています。 あなたの国のオブジェクトがさまざまなスウェーデン風に変化するシーンをどのように作成しますか? あなたの目は、あなたのさまざまなビューにあるオブジェクトを脳に伝えることができます. この場合、デザインにおける視差効果の好みは似ています - zіmіtuvavshi yogo、あなたは奥行きにフラットシーンを追加します.

また、私たちにとって実際的な意味で、視差の効果は、さまざまな時間にあなたから離れたオブジェクトがさまざまなスウェーデンとは異なるという事実にあります。 さらに、tsya swidkіstはob'ektіvにあなたのvіdstanіにあります。 あなたが近くにいても - オブジェクトの速度は大きく、遠くにいる場合でも - 一方。

主な倉庫効果を見てみましょう。 まず、明確に顕著な視差の場合、マザー フォンは理想的には手に負えないものです。 別の方法では、視差はオブジェクトの自明性のためにのみ保護でき、背景と注意点の間の広がりを思い出させます。 そして、これらのオブジェクトで最も重要なことは、あなたからの距離の違いです。 言い換えれば、ob'єktiは、視点から背景までさまざまな視点でシャッフルし、自分自身の支配者になる罪を犯しています。 私、nareshti、第三に、異なるスウェーデン性を持つ注意点と同時に、オブジェクトの動きなしでは不可能な視差。

3 つの主要な瞬間すべて (背景、オブジェクト、知覚可能なラッシュ) を明確にするには、mi postigatimemo 視差を使用します。

視差スクロール

さて、視差が支配していることを知っていれば、私たち自身がコードでヨガを教え込むので、サインアップする必要があります.

視差を実装するための最も明白なアプローチは、視差スクロールです。 古いプラットフォーマー ゲームをプレイしましたか? もしそうなら、あなたは、キャラクターが川の左端から右に大きくなっている間に、背景のオブジェクトが前景の前方範囲にある別の swidkisyu 休閑地とは反対方向にあったことをすべて推測することができます. ウィキペディアへの投稿の軸なので、何をすべきかを正確に推測しました。

ゲームでのパララックス スクロールは非常に強力であるため、画面に表示されるシーンは、多くのボールで構成されており、オブジェクトを隠しています。 画面手前のボール(ボール「キツネ」が手前、下のボールが「暗い」、手前に近いほど下のボールが「太陽」)の前に落ちてボールがずれているその他のswidkist。 画面上に 1 つの粘土が表示されている場合は、フラットな画像が表示されることを願っています。 知ることは不可能です-私たちが視差について知っていたので、spivvіdnositsyaz timにうまくやるのはそのようなpidkhіdです。 本当に、あなたとボールの背景の間のスペースを壊すことができ、オブジェクトに何を復讐するか、このスペースで何を知ることができます.

視差効果の実装は、他のコンポーネントを補うために、ある種のコンポーネントコンテナにカプセル化されているためであり、種の階層である可能性があり、その位置は階層。 自問してみましょうが、UIKit に欠けている要素はどれで、自分に復讐できるのはどれですか? Zvіsnoє! addSubview: メソッドによって配置された他の UIView の階層に復讐するための UIView であるかどうか。

ここで、DVParallaxView コンポーネントの根底にある主なアイデアに到達します。 コンポーネントは、視差効果をカプセル化する UIView パッチであるという考え方です。 効果自体は、CGPoint タイプの新しい contentOffset パワー値を渡すことによって実装されます。 このように、DVParallaxView は独自の方法で UIScrollView に似ています。 contentOffset 値を変更すると、DVParallaxView 階層にあるスキン ビュー デスケーラーが変更されます。 usunennia の値は、階層の「最上位」にある要素の距離の奥にあります。 サブビューの配列内の要素のフラグメントは、階層の最下部から (次に画面の遠景から) 取得されます。次に、シフトは、直接通過中に、まっすぐな休閑地から耕作された要素のインデックスに変更されます。配列。 このように、現実世界のように、要素の間に「立つ」ことの自明性を解釈します。 入力のサイズを制御するために、配列内の要素のインデックスが乗算される乗数である外部電源インターフェイスに入ります。 ヨガを行うことで、タワーの背後にある視差の量をいつでも調整できます。

さて、提案されたモデルは本物そっくりに見え、すべての要点が考え抜かれています。 ここで、DVParallaxView の概念的な視差デバイスに関する知識に注意を払い、その実用的な実装について話し始めることができます。

DVParallaxView の作成

この次の章では、DVParallaxView コンポーネントの作成について報告します。

その前に、実装に直接進む方法として、より強力な DVParallaxView クラスを見てみましょう。

そもそも、視差が最もよく見え、ほとんどの場合、写真の端であるアブラムシで戦います (倉庫の視差の衣服の 1 つが背景であることを覚えていますか?)。 したがって、私たちのクラスでは、背景画像をインストールする機能を転送する必要があります。 ビュー階層のルートには常に、backgroundImageView と呼ばれる UIImageView クラスへのプライベート要素があります。 この要素は、DVParallaxView で背景の役割を果たします。 階層のルートにある Yogo roztashuvannya は、シーンの最大のオブジェクトである背景に属しているかのように、最も目立たない使用を保証します。 コンポーネントのパブリック インターフェイスに背景画像を渡すには、UIImage クラスに対する backgroundImage という特別な権限があります。

別の言い方をすれば、iOS 7 の視差効果は背景のシフトだけによるものではありません。 さらに驚いたことに、1 つの詳細に注意してください。アイコンが背景の反対側に移動します。 視差効果を強めるためにシャープ化されており、見当違いの背景と、一見手に負えないアドオンのアイコンとのコントラストが強調されています。 メタのシャードを設定して、iOS 7 のパララックスに追いつき、追い越します。そのような可能性をコンポーネントに追加するためにただゴイターします。 誰のために、反対側の視差側に移動したいビューを伝えるために、パブリック インターフェイスで frontView を作成します。

Otzhe、すべての準備が壊れています-理論が開発され、思考の要素が追加されました。 DVParallaxView を閉じる前に続行できます。 準備はできたか?

XCode で単一ビュー プロジェクトを作成し、名前とその他の必要な属性を指定します。 プロジェクトの途中で、デフォルトの UIView クラスである DVParallaxView クラスを作成します。 DVParallaxView ヘッダー ファイルを作成し、この順序で保存します。

#輸入 @interface DVParallaxView: UIView @property (nonatomic, strong) UIImage *backgroundImage; @property (非アトミック、強力) UIView *frontView; @property (非アトミック) float parallaxDistanceFactor; @property (非アトミック) float parallaxFrontFactor; @property (非アトミック) CGPoint contentOffset; @終わり

あなたがここにいるように、クラスにいるすべての力は、彼らの採用があなたのせいではないことをすでに議論しました。 前に明示的なビューで説明されていなかった 2 つの累乗 - parallaxDistanceFactor と parallaxFrontFactor - これらは乗数であり、要素の階層と正面ビューのシフトの大きさを制御するのに役立ちます。

クラスの実装ファイルのプライベート インターフェイスを作成します。 backgroundImageView の権限が必要ですが、このクラスには公開アクセスを与える権限があまりありません。

@interface DVParallaxView() @property (非アトミック、強力) UIImageView *backgroundImageView; @終わり

initWithFrame: メソッドを呼び出して、クラス オブジェクトをインスタンス化します。 ヨガでは、コブ構成全体をビコネートする必要があります。

- (id)initWithFrame:(CGRect)frame ( self = ; if (self) ( self.parallaxDistanceFactor = 2.f; self.parallaxFrontFactor = 20.f; self.backgroundColor = ; ; UIPanGestureRecognizer *panRecognizer = :@selector(panHandler) :)]; ; ) 自己を返す; )

私たちは乗数にそのような意味を与え、それら自身の特別な類似性を調べました。 視差が強すぎたり弱すぎたりするように、他の値を選択することもできます。 ボディの背面は、ビューの階層にある穂軸上にあることに注意してください。

「コンポーネントの視覚化を初期化するにはどうすればよいですか?」とすでに質問している場合は、初期化子のコードである UIPanGestureRecognizer で質問できます。 というわけで、iOS 7 の視差がスマートフォンに呼び出されたことを覚えています。 いつも。

UIPanGestureRecognizer には、panHandler: メソッドに渡されるセレクターがあります。 このメソッドをすぐに書いて、いつも使うのを忘れないようにしましょう。

#pragma mark - ジェスチャーハンドラー - (void)panHandler:(UIPanGestureRecognizer *)pan ( CGPoint translation = ; ; ; )

特別なことは何もありません。 ねじり変位は読み取り可能で、同じ変位値が DVParallaxView に設定されています。 世界のオトリマネ ウスネニャをリセットすることを忘れないでください。

今すぐもっと見つけてください。 contentOffsetを変更しても何も表示されないので修正しましょう。 以下に示すように、setter メソッド setContentOffset を作成します。

-(void)setContentOffset:(CGPoint)contentOffset ( BOOL backgroundReachedEdgeX = NO; BOOL backgroundReachedEdgeY = NO; double contentDivider; //1 if (self.backgroundImageView) ( contentDivider = self.subviews.count*Gelf. (self.backgroundImageView.center) .x + (contentOffset.x - _contentOffset.x)/contentDivider, self.backgroundImageView.center.y - (contentOffset.y - _contentOffset.y)/contentDivider);if ((newCenter.x - self .backgroundImageView.frame.size .width/2.f) > 0.f || (newCenter.x + self.backgroundImageView.frame.size.width/2.f)< self.bounds.size.width) { newCenter.x = self.backgroundImageView.center.x; backgroundReachedEdgeX = YES; } if ((newCenter.y - self.backgroundImageView.frame.size.height/2.f) >0.f || (newCenter.y + self.backgroundImageView.frame.size.height/2.f)< self.bounds.size.height) { newCenter.y = self.backgroundImageView.center.y; backgroundReachedEdgeY = YES; } self.backgroundImageView.center = newCenter; } // //2 for (int i = 1; i

Otzhe、レポートの方法を見てみましょう。 backgroundReachedEdgeX と backgroundReachedEdgeY を変更して、画像の端に到達した人に関するシグナルとして機能させます。 バックグラウンド タスクとして、backgroundImage 画像間で表示される内容をオーバーライドすることはできません。 アジャ、私たちはしたくないので、コリストヴァチが画像の削りを見ると、不自然に見えます。 したがって、いわば背景の画像の寸法で視差の領域を囲む必要があるため、私たちはvvazhaliです。 この順番で、//1 をブロックして、中間イメージの再検査の報復を行います。

ブロック //2 - rozrakhunkom から、ієrarchy の休耕地の使用済みセンターの値を見て、ієrarchy のすべての要素の通路全体。 したがって、背景画像の端にある X 軸または Y 軸がわかっている場合、これらの軸の変位はありません。

置換の主なロジックが作成されましたが、多くが省略されています。主な権限にアクセスするためのメソッドを設定し、addSubview メソッドを再構築します。

#pragma mark - Getters -(UIImageView *)backgroundImageView ( if (!_backgroundImageView) ( _backgroundImageView = [ init]; _backgroundImageView.contentMode = UIViewContentModeCenter; _backgroundImageView.center = CGPointMake(CGRectGetMidX(self.sel) ; ) return _backgroundImageView; ) #pragmaマーク - セッター -(void)setParallaxDistanceFactor:(float)parallaxDistanceFactor ( _parallaxDistanceFactor = MAX(0.f, parallaxDistanceFactor); ) -(void)setParallaxFront .f, parallaxFrontFactor); ) -(void)setBackgroundImage:(UIImage *)backgroundImage ( _backgroundImage = backgroundImage; ; CGPoint origin = CGPointMake(CGRectGetMidX(self.bounds) - backgroundImage.size.width/2.f, CGRectG.bounds) - backgroundImage.size.height /2.f)、self.backgroundImageView.frame = (CGRect)(.origin = 原点、.size = backgroundImage.size); _frontView = フロントビュー; ; ) #pragma mark - オーバーライド -(void)addSubview:(UIView *)view ( if (self.frontView) ; else ; )

順番に行きましょう。 backgroundImageView の getter を使用すると、すべてが明確になりました。これはより遅延インスタンス化であり、必要に応じてオブジェクトを作成します。 ParallaxDistanceFactor 値が設定されると、ParallaxFrontFactor は自動的に負の値に変更されます。 backgroundImage のセッターは、backgroundImageView に背景画像を設定し、同時に画面の中央に配置します。 frontView セッターは即座に frontView をビュー階層に追加するため、手動で追加しても意味がありません。 ナレシュティ、addSubview メソッドが変更されました。DVParallaxView で frontView が割り当てられていなくても、デフォルト モードで動作しますが、割り当てられていない場合、いずれかのビューが階層内の新しいビューよりも低い位置に配置されます。 frontView が気になっても前面に出しておきましょう。

とりあえず、テスト プロジェクトのメインの viewController に移りましょう。 新しいコンポーネントを接続し、右側のヨガを書き直す時が来ました。 iOS 7 の新しいホーム画面に似せたい場合は、テスト プロジェクトで試すことができます。 そのためには、背景の画像 (宇宙画像から) とアドオンのアイコンが必要です。 それ以上に、コンポーネント シャードは背景と前景の間の他のオブジェクトをサポートします。 背景は宇宙であるため、宇宙のテーマと、惑星地球とその仲間である月の活気に満ちた空の宇宙の広がりのトロッコです。 必要な画像はインターネットで見つけるか、github のテスト プロジェクトから取得できます。

iOS 7 では、プログラム アイコンはフォアグラウンドにあるため、DVParallaxView ではそれらを frontView に配置する必要があります。 誰のためにUIViewを作成し、すべてのアイコンをどの程度保存できるか。 これらすべてのコンポーネントを手動で作成して配置することを避けるには、ストーリーボードでコンテナーとアイコンを作成してから、それらをコントローラーに接続します。

軸は、テスト用アタッチメントの正面図のように見えます。 UIView コンテナーを IBOutlet としてコントローラーにバインドし、frontView という名前を付けます。 DVParallaxView インスタンスの作成に取り掛かりましょう。

parallaxView のパワーをコントローラーのプライベート インターフェイスに設定します。 横暴な人がゲッターを作成します。

-(DVParallaxView *)parallaxView ( if (!_parallaxView) ( _parallaxView = [ initWithFrame:self.view.bounds]; [_parallaxView setBackgroundImage:]; UIImageView *earth = [ initWithImage:]; earth.frame = (CGRect) (.origin ) = CGPointMake(CGRectGetMidX(self.view.bounds) - earth.image.size.width/2.f、CGRectGetMidY(self.view.bounds) - earth.image.size.height/2.f)、.size =地球 .frame.size);[_parallaxView addSubview:earth];UIImageView *moon=[initWithImage:];moon.frame=(CGRect) self.view.bounds) + 30.f), .size = moon.frame.size );[_parallaxView addSubview:moon];[_parallaxView setFrontView:self.frontView];

コードでは、DVParallaxView クラスのインスタンスの作成後に背景「galaxy2」が設定され、地球と月の画像がビュー階層に追加されることが明らかです。 次に、フォアグラウンドとして、frontView の権限が設定されます。 あとは、コンポーネントをコントローラー ビュー階層に追加するだけです。 行全体を viewDidLoad メソッドに追加します。

;

Parallax の準備ができました。プロジェクトを開始できます。 私たちの創造の結果、開発の同じ段階にあるコンポーネントは、完全に信頼できる視差効果をもたらします。

1 つだけ詳細を失いました。 とりあえずうすねんにゃ要素はドットで打ちます。 それを修正する時が来ました。 DVParallaxView ジャイロスコープに接続します。

接続可能なコアモーション

私たちの記事を読んだことがあれば、このプロジェクトでジャイロスコープを使用するために必要なすべてのスキルを持っている可能性があります。また、ジャイロスコープを接続するには、Core Motion フレームワークをプロジェクトに追加する必要があることも知っています。 エール、センサーからの vikoristovvatimemo データをどのように取得しますか? RotationRate は、プロジェクトが電話でどれほど悪いかを示すために選択されました。 そのため、ゼロ以外の頂点シフトが存在するため、contentOffset が変更されます。

フレームワークを DVParallaxView クラスの実装ファイルに接続します。

#輸入

プライベート インターフェイス クラスで motionManager と displayLink の機能を作成しましょう。

@property (nonatomic, strong) CMMotionManager *motionManager;

@property (nonatomic, strong) CADisplayLink *displayLink;

CMMotionManager は、センサーからのデータにアクセスするために使用される主要な CoreMotion クラスです。 CADisplayLink - ジャイロスコープからデータを更新するためのウェイクアップ方法である画面更新の頻度で動作するタイマー。

今 dodamo メソッドと新しい機関へのアクセス。

-(CADisplayLink *)displayLink ( if (!_displayLink) ( _displayLink = ; ) return _displayLink; ) -(CMMotionManager *)motionManager ( if (!_motionManager) ( _motionManager = [ init]; _motionManager.deviceMotionUpdateInterval = 0.03f; ) ;)

明らかに、DVParallaxView コンポーネントである小売業者の場合、ジャイロスコープを vicorist に設定する必要があります。 おそらく、contentOffset 値を変更する方法は他にもあるでしょう。 コンポーネントは、ジャイロスコープを介して視差するために必要な選択の可能性を与えるためにこれを非難することです. この選択のために、gyroscopeControl をパブリック インターフェイスに導入します。これは BOOL タイプです。 YES に設定されている場合、コンポーネントはジャイロスコープからの指示の読み取りを開始し、アタッチメントが不良な場合に階層の要素をオフセットします。 NOに搭載されているので、構造の頂点の変化に成分が反応します。 どんな力でも、motionManagerとdisplayLinkは責任を負い、プロセッサのリソースを無料で奪わないようにします。

巨大なインターフェースで gyroscopeControl を作成できたので。

@property (nonatomic, strong) BOOL gyroscopeControl;

新しい妹のために何か作りましょう。

-(void)setGyroscopeControl:(BOOL)gyroscopeControl ( if (_gyroscopeControl == gyroscopeControl) return; _gyroscopeControl = gyroscopeControl; if (gyroscopeControl) ( ; forMode:NSDefaultRunLoopMode]; ) else ( ; ) ;

電源を YES に設定すると、motionManager はジャイロスコープからではなく、deviceMotion から読み取りを開始することに注意してください。 この選択の理由は、伝えられるところによると記事に記載されています。 NO に設定すると、データが削除され、invalidate メソッドを呼び出して既存のストリームから displayLink が削除され、motionManager 自体が nil に設定されます。

これで、ジャイロスコープからのデータを contentOffset のデータに変換するメソッドを作成したり、displayLink タイマーによって呼び出される displayLinkHandler メソッドを実装したりする必要がなくなりました。

#pragma mark - オフセットするジャイロスコープ - (CGPoint)contentOffsetWithRotationRate:(CMRotationRate)rotationRate ( double xOffset = (fabs(rotationRate.y) > DV_ROTATION_THRESHOLD)?rotationRate.y*DV_ROTATION_MULTIPLIER x) > DV_ROTATION_THRESHOLD)?rotationRate.x*DV_ROTATION_MULTIPLIER:0 .f; )

実装ファイルには、変換メソッドで使用した定義定数を 2 つ記述することを忘れないでください。

#定義 DV_ROTATION_THRESHOLD 0.1f

#DV_ROTATION_MULTIPLIER 2.5f を定義

DVParallaxView オブジェクト作成時のコントローラー クラスでは、gyroscopeControl のパワーを YES に設定します。

Otzhe、接続のジャイロスコープ、新しい罪悪感のデータがシフトに正しく変換されるようになりました。 これで、プロジェクトをコンパイルして、拡張機能で yoga を実行できます。 あなたはよく見えますよね? 敬意を表して、ジャイロスコープは実際の拡張ではあまり実用的ではありません。

ビスノボク

この段落を読むと、iOS 7 のような視差効果を持つ okremy コンポーネントの作成に成功したことを意味します。もっと見る - DVParallaxView コンポーネントの効果はより高く、シャードは背景と前景だけでなく、また、要素全体。 バカイトのように、ヨガのアタッチメントは折りたたみ式ではありません。

DVParallaxView は、リポジトリへの無料提出用に作成されました。 叫んで、ペイントして、あなたの提案に満足します!

© 2022 androidas.ru - Androidに関するすべて