問題タブ [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.
ios - iOS: [self.view setNeedsDisplay];
これについての基本を忘れているようです。それとも、疲れすぎているのかもしれません。
ビューコントローラーと、そのサブクラスでUIView
ある MyViewClass という名前のビューがあります。
viewDidLoad
私のviewControllerでは、私は次alloc
のinit
self.myView
ようにしています:
私のviewControllerのある時点で、私は[self.view setNeedsDisplay];
. ここでは問題ありません。
MyViewClass.h でプロパティを公開します。
プロパティはmyViewi
で使用されます。drawRect
したがって、私のviewControllerから次のように設定します。
だから私の質問は:
[self.view setNeedsDisplay];
呼び出す必要なくビュー コントローラーを呼び出すことができ、myView で呼び出されるのに、既にビュー コントローラーに割り当てられているようにビュー コントローラーで呼び出すことができない[self.myView setNeedsDisplay];
のはなぜですか?drawRect
self.view.i
self.myView
self.view
viewDidLoad
ios - 重なり合う同一のビュー間のクロスフェード
私はお互いの上に2つの同一のビューを持っています。1 つは本物で、もう 1 つはダミーとして機能するはずです。
それらの間を(静かに)クロスフェードしたいと思います。同じアニメーション ブロックで、1 つのビューのアルファを 0 に設定し、2 番目のビューのアルファを 1 に同時に設定しました。
しかし、結果はスムーズではなく、1 つのビューがフェードアウトし、2 つ目のビューがフェードインしているのがわかります。
PS実際のビューはフェードアウトする必要があるコレクションビューの一部であり、2番目のビュー(ダミー)はコレクションビューがなくなった後にコレクションビューのセルの1つを置き換えることを想定しているため、アニメーションなしでこれらのアルファを設定することはできません。
それを行う方法と、iOSがそのようにレンダリングする理由は?
ありがとう!
ios - UIImageView のサブビューとして追加するとビューが反転する
UIView
ビアに三角形を描画しdrawRect
、続いてこれUIView
をメイン ビューのサブビューとして追加します ( UIView
)。
非常に簡単で、それは示しています。
を使用すると問題が発生しますUIImageView
。
UIView
(メインビュー)サブビューとして追加し、UIImageView
これを使用して、三角形を描画するサブビューとして追加します。UIImageView
UIView
階層:
作品を見る:
三角形が垂直に反転されます。簡単な修正は、垂直方向に再度反転することですが、 as サブビューを追加するとこの反転が発生するUIView
理由を知りたいです。UIView
UIImageView
図面がメイン ビューのサブビューとして直接あるビューを追加すると、これは発生しません。
uitableview - アプリのUIデザインアドバイス
クリケット選手の比較と更新の提供に関連するアプリケーション用に作成したい UI を描画しようとしました
上記のように、比較画面には 2 つのセクションがあります。1 つは、2 人のユーザーが好きまたは嫌いな画像であり、もう 1 つは、既に好きまたは嫌いな上記の画像のライブ更新を取得することです。
この画面全体はスクロール可能であり、比較セクションの高さは、実行時に取得する行数に応じて実行時に設定され、ライブ更新セクションがダウンすることにも応じます...
デザインをmainView-> ScrollView-> twoTableViewまたはTwo UIViewとして見る方法(UITableviewで、画像が中央にあり、2つのボタンが並んでいるこの種のカスタムセルを実行できるかどうかはわかりません)
間違っている場合、およびそれを行うためのより良い方法がある場合は、私を修正してください。
ios - ビュー コントローラー コンテナーは散発的に子コントローラーの viewWillAppear を見逃します
子ビュー コントローラーのビューのラッパーとなるサブビューを持つルート ビュー コントローラーがあります。基本的な考え方は、私のルート コントローラーには左右のビュー コントローラーがあり、どちらも画面に表示されます (splitviewcontroller に似ています)。読み込み時に、モーダル ビューがルート ビュー コントローラー上にポップアップし、詳細を尋ねます。次に、モーダル ビューはサーバーに接続し、応答を取得した後に閉じられます。次に、ルート コントローラーは、次のコードを使用して子ビュー コントローラーを追加します。
ビューコントローラーの追加は次のとおりです。
addViewToWrapper は、次のように、ビュー コントローラーのビューを rootViewController の関連するサブビューに追加するだけです。
99% の場合、これで問題なく動作します。両方のビューが即座に表示され、両方の子コントローラーで viewWillAppear が発生します。ただし、画面が短時間白いままになり、viewWillAppear が右側のビュー コントローラー (EDIT: と左側) で起動しないことがあります。viewWillAppear 以外のすべてのビュー ライフサイクル メソッドが起動します。
残念ながら、クラス全体のコードは複雑で独自のものであるため、提供できません。しかし、この説明には、この断続的な動作の手がかりはありますか?
ios - iOS: 命令オーバーレイを実装する場合: 別のブランチを配置する前に、ビュー階層の 1 つのブランチを配置する必要があります
アプリ内の他のビューについてユーザーに指示を与えるオーバーレイを実装しようとしています。ビュー階層のスケッチは次のとおりです。
InstructionView
に対して相対的に配置する必要がありますが、そのためには、 のフレームを参照して のフレームを設定できるように、ViewToProvideInstructionsFor
を含むビュー階層のブランチが配置されていることを確認する必要があります。これどうやってするの?ViewToProvideInstructionsFor
ViewToProvideInstructionsFor
InstructionView
ios - UIImage の上に配置するとセグメント化されたコントロールが機能しない
1 つの imageView (プログラムで addSubView を使用して作成) を含む 1 つの ScrollView と、画像を変更するためのセグメント化されたコントロールを含む 1 つのビューがあります。ズーム用のジェスチャ認識機能を追加しました。セグメント化されたコントロールの水平位置は固定されています。この問題は、セグメント化されたコントロールをクリックしようとすると、画像がズームしすぎると発生します。うまくいきません。ズーム レベルが小さい場合、動作し続け、画像間で変化します。
以下の 2 つのスクリーンショットは、状況を示しています。1) セグメント化されたコントロールが機能する場合と、2) 機能しない場合。
http://cs617220.vk.me/v617220757/e375/hvRdXNe9SBY.jpg http://cs617220.vk.me/v617220757/e36e/E4auq4-kFL4.jpg
問題はビューの階層にあり、追加されたサブビューがセグメント化されたコントロールとビューをオーバーラップしない場合-機能し、オーバーラップすると停止すると思います。imageView を一番下に配置しようとしましたが、コードは次のとおりです。
しかし、これは役に立ちません。問題は残ります。imageView をスタックの一番下に配置するにはどうすればよいですか?
コメントへの更新: UIScrollView とセグメント化されたコントロールの間に小さな UIView があります。どうやら問題をキャッチできたようです。それは水平固定コードです。これを見つけるためにRevealアプリを使用しました。2 つのスクリーンショットが問題を示しています。
ここでは、セグメント化されたコントロールが小さな UIView のすぐ上に配置されています。少しだけズームすると、画面は次のようになります。
したがって、UIView は画像の残りの部分と同じように消え、水平位置が固定されません。興味深いことに、セグメント化されたコントロールを UIScrollView に直接配置すると機能しますが、位置は水平方向に固定されません。これはコードです:
そして、これは機能しません(セグメント化されたコントロールではなく、UIView の位置を修正しようとすると):
解決策:
一方向のスクロールをブロックする代わりに、すべての補足ビューを取り除き、セグメント化されたビューの垂直スクロールを実装することにしました。コードは次のとおりです。
ビューの階層は次のとおりです。
したがって、セグメント化されたコントロールは、スクロール ビューではなく、メイン ビューに直接配置されます。縦スクロールの場合はスクロールしますが、横スクロールの場合はスクロールしません。手伝ってくれてありがとう。
Departamento B がこの問題を解決するのを手伝ってくれたので (これは彼のアイデアです)、私は彼の答えにチェックマークを付けます。