問題タブ [uiview-hierarchy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
944 参照

objective-c - サブビューからココア、UIResponderのスーパービューにメッセージを送信しますか?

タッチセンシティブなこれらすべてのサブビューがあります。サブビューからスーパービューにメッセージを送信して、ユーザーがそれを選択したことを伝えたいので、スーパービューはコントローラーの残りの部分と通信できます。

サブビューとコントローラー、サブビュー >> スーパービュー >> コントローラーの間で通信できません

おそらくこれを達成するためにUIResponderを使用しますか?

0 投票する
22 に答える
98647 参照

ios - iOSのuiviewcontrollerですべてのサブビューを一覧表示するには?

内のすべてのサブビューを一覧表示したいUIViewController。を試しself.view.subviewsましたが、すべてのサブビューがリストされているわけではありません。たとえば、 のサブビューがUITableViewCell見つかりません。何か案が?

0 投票する
5 に答える
13767 参照

iphone - 子供と一緒にUIViewのTouchUpInside

ここで何かが足りないかもしれませんが...

私にはUIView数人の子供がいます(数人UILabelのとUIImageView)。ユーザーが親内の任意の場所(またはその子のUIView一部)をクリック(タップ)したときにイベントをキャッチする必要があります。UIView

これを行うための最良の方法は何ですか?

0 投票する
1 に答える
129 参照

ios - ドキュメントを開くときのビュー階層の管理

特定の種類のドキュメントを開くことができる IOS アプリがあります。

私のアプリは、次の方法でドキュメントを受け取ります。

まだ開始されていないとき、または終了したとき

アプリがすでに起動されているとき。

アプリが既に開始されている場合、ユーザーは既にアプリで多くのビューを開いている可能性があります。次に、アプリがドキュメントを開くようにトリガーされた場合、どのようにして正しいビューを開いて移動できますか (古い階層を閉じて、新しい階層を開いてドキュメントを表示します)。

私は使用しようとしました:

fromViewController = rootViewController (UIApplication & UIWindow を使用して取得) と toViewController: ViewController を使用して、ドキュメントを表示する必要がありますが、成功しません。

このトピックを進める方法はありますか? ありがとう、

セバスチャン。

0 投票する
4 に答える
8847 参照

objective-c - How to Insert View in Superview's View? (iOS)

I have the line of code below... How would I modify it to insert the subview in the superview's view named 'foo'?

0 投票する
0 に答える
69 参照

objective-c - スーパービューのビューにビューを挿入するにはどうすればよいですか?(iOS)

重複の可能性:
Superviewのビューにビューを挿入する方法は?(iOS)

以下のコード行があります...スーパービューにある「myView」という名前のUIViewにサブビュー「mySubview」を挿入するように変更するにはどうすればよいですか?

0 投票する
0 に答える
382 参照

ios - 複数のビュー コントローラに共通のサブビューが応答しない

ユーザーにビジー/処理の手がかりを表示するために を使用してUIViewいますが、読み込みビューのコンポーネントがユーザーのタッチに反応しません。私の問題を詳しく説明しましょう。約 3UIViewController秒あり、状況に応じて 1 つViewVieControllers表示されます。次のコードを使用して現在のビューを変更します

次に、一般的にビジー/処理中の UI をユーザーに表示するために使用される Loading ビューがあります。nibファイルから次の方法でLoadingビューを作成しました

アプリ デリゲートで、読み込み中のビューを初期化し、メイン ウィンドウに追加します。

ローディング/ビジービューを表示する必要があるときはいつでも、このようにロードするだけです

すべて正常に動作しますが、読み込みビューのコンポーネントがタッチに反応しません。何がうまくいかないのですか?

問題はスレッドの問題によるものであることに気付きました。ユーザーがファイルのダウンロードを開始すると、このサブビューが表示されます。私の以前のコードは、ダウンロードを直接開始することでした

以下のように、バックグラウンドスレッドを使用して別のメソッドからこのメソッドを呼び出しています

そして、次のようにダウンロードにrunloopを追加しています

これは正常に機能し、私のサブビューは応答性があります。本当に時間がかかりました。問題は、バックグラウンド スレッドでダウンロードを実行し、同時に UI をレスポンシブにするのに役立つ明確なコード例があることです。

0 投票する
8 に答える
35553 参照

objective-c - hitTest:withEvent:を使用して、スーパービューのフレーム外のサブビューのタッチをキャプチャします。

私の問題:EditView基本的にアプリケーションフレーム全体を占めるスーパービューとMenuView、下部の約20%のみを占めるサブビューがあり、実際には範囲外にあるMenuView独自のサブビューが含まれています(次のようなものです)。ButtonViewMenuViewButtonView.frame.origin.y = -100

(注:のビュー階層のEditView一部ではないが、回答に影響を与える可能性のある他のサブビューがあります。)MenuView

あなたはおそらくすでに問題を知っているでしょう:ButtonViewがの範囲内にあるときMenuView(または、より具体的には、私のタッチがMenuViewの範囲内にあるとき)、ButtonViewタッチイベントに応答します。タッチがMenuViewの範囲外にある場合(ただし、まだ範囲内にあるButtonView場合)、タッチイベントは。によって受信されませんButtonView

例:

  • (E)はEditView、すべてのビューの親です
  • (M)はMenuView、EditViewのサブビューです
  • (B)はButtonView、MenuViewのサブビューです

図:

(B)は(M)のフレームの外側にあるため、(B)領域のタップは(M)に送信されません。実際、この場合、(M)はタッチを分析せず、タッチはに送信されます。階層内の次のオブジェクト。

目標:オーバーライドhitTest:withEvent:することでこの問題を解決できると思いますが、その方法は正確にはわかりません。私の場合、(私の「マスター」スーパービュー)hitTest:withEvent:でオーバーライドする必要がありますか?または、タッチを受信して​​いないボタンの直接のスーパービューでEditViewオーバーライドする必要がありますか?MenuViewそれとも私はこれについて間違って考えていますか?

これに長い説明が必要な場合は、優れたオンラインリソースが役立ちます。ただし、AppleのUIViewドキュメントは、私にはわかりません。

ありがとう!

0 投票する
1 に答える
2219 参照

objective-c - UIView clipToBoundsは、親ビューの外部でタッチを受信するsubViewを停止していません

2つのUIViewがあります。片方をもう片方の中にスライドできるように、もう片方を封じ込めるために使用しています。subViewが親の境界にクリップされていても、タッチイベントを受信し、他の基になるビューへのアクセスをブロックしているという問題が発生しています。

レイアウトを示す3つのスクリーンショットがあります。親を緑、子を赤に着色しました。

ユーザーが[表示]をクリックすると、サブビューが上にスライドするという考え方です。サブビューがデフォルトの位置にある場合、UITabBarはカバーされており、クリックできません。これは、下部に赤いビューが表示されている最初の画像で確認できます。サブビューを一番上に移動すると、UITabBarが表示されているのでクリックできます。3番目の画像では、緑色のUIViewでclipToBoundsを有効にした場合の様子を示しています。

clipToBoundsを有効にしたので、subViewが基になるUITabBarをブロックしている理由がわかりません。私のclipToBoundsの理解は完全に間違っていますか?

0 投票する
2 に答える
8493 参照

ios5 - UIViewContentModeモードが参照するコンテンツのタイプは何ですか?

contentModeプロパティに関するUIViewの公式ドキュメントによると:

この定義の内容は何によって定義されていますか? それはサブビューですか、それともビューの背景色を定義した場合などです。

UIViewContentModeCenter私の最初の推測では、少なくともビュー内のサブビューに適用する必要がありますが、たとえば、次のコード スニペットでは、タグを操作したときに期待した結果が得られません 。

greenView を含む redView をセットアップしました。また、redview のコンテンツ モードを次のように設定しましたUIViewContentModeCenter。親のフレームを変更したときに、書いたコードで greenView が中央に配置されないのはなぜですか? すべきことではないUIViewContentModeCenterか。

明確にしてくれてありがとう!

Ps:上記のコードはloadView、単純なビュー コントローラー テンプレート プロジェクトで簡単にテストできます。