問題タブ [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.
iphone - iOS 6.0 の MFMessageComposeController で UIButton が nil である
アプリケーションの表示ウィンドウと非表示ウィンドウのビュー階層を印刷しようとしています。MFMessageComposeViewController のサブクラス内のコードの一部を次に示します。
findButtonInView: メソッドは、現在の UIWindow で UIButton を再帰的に検索しています。
これは、iOS4.3 および iOS 5.1 でのテストでは期待どおりに機能しますが (期待される UIButton が正常に検出されます)、iOS6 では機能しません。以下は、両方のテストからのビュー階層出力の結果です。
iOS 4.3:
iOS 6.0:
私の質問は、必要な UIButton を UITextEffectsWindow 内で見つける方法です。
どうやら iOS6 のビュー階層が変更されているようです...
助けていただければ幸いです。ありがとう!
ios5 - 以前に選択したフレームを復元できないという警告 - UITabBarController Modally を開くことができません
tabBarController をモーダルに表示しようとしています。私は次のコードでそれをやろうとしています:
これを行おうとすると、次の警告が表示されます。
warning unable to restore previously selected frame
そして、xcodeは、uiview(hierarchy)_makesubtreeperformselector
過剰なクラッシュが原因で指しているアセンブリ言語/スタックを表示します。
問題は、私が作成したビュー階層を理解できないことだと思います。私が持っているものは次のとおりです。
tabsManager という名前のtabbarcontrollerをモーダルに表すabcとしましょう。
tabsManager は *"int_his"* と *"man_his"* という名前の 2 つの viewController を管理しています。
int_hisのボタンをクリックすると、 「summaryGraphManager」という名前の別の tabBarController をモーダルで開く必要があります。
*summaryGraphManager *モーダルを正しく表示するにはどうすればよいか教えてください。ありがとう。
cocoa-touch - スーパービューに追加する前に UIView のアルファを設定する
指定されたスーパービューとサブビューの 2 つのビューがあります。サブビューのアルファ値は 0 で、初期化されただけで、どのスーパービューにも追加されていません。サブビューを構成した後、UIView アニメーション ブロックを宣言します。これで、サブビューのアルファを 1 秒以内に 1.0 に変更します。
アニメーションを宣言した直後に、サブビューをスーパービュー X に追加します。
アニメーションが起こらない可能性はありますか? もしそうなら、それはなぜですか?
objective-c - UIViewController内のUIViewまたはそれを行うためのより良い方法?
ある種の行動を適切に行う方法に問題があります。
以下の画像はUIViewControllerを示していますが、ビューの2番目の部分はカスタムUIView(プロファイル写真、名前、および[ビューの表示]ボタンが付いたもの)です。サブクラス化されたUIViewは、次のコードを使用して割り当てられます。
もちろん、問題は、UIViewのボタンがビューを表示できないことです。これは、別のViewControllerをウィンドウにプッシュできるのはUIViewControllerだけだからです(正しいですか?)。
UIViewはアプリのいくつかの場所で使用されており、簡単に追加でき、アプリケーション全体で同じ動作をする必要があります。
これは、ボタンを追加するまではうまく機能しました。これは間違っていると思い始めており、それを行うためのより良い方法が必要です(UIViewを別のものに変更する可能性がありますか?)。
私は私が呼ぶことができるべきだと思っていました:
そして、どういうわけかViewControllerを取得して、別のViewControllerをビュー階層にプッシュできるようにしますが、違います。
これを正しく行う方法に関する提案やヒントはありますか?
更新:ボタンから別のUIViewControllerをプッシュする方法がわかりません。
UIViewのボタンを押すとき、このメソッドで何をすべきですか?
GPProfileSocialFriendsViewControllerをプッシュするにはどうすればよいですか?
ios - タップを処理しているビューを検出するにはどうすればよいですか?
ビュー階層の最下部のどこかに、touchesBegan メソッドを実装しています。1 本指のタップを除くすべてのタッチで起動します。これにより、階層の上位のどこかで、ビューが 1 本の指のタップを傍受/処理していると信じるようになりますが、私の人生のビューを見つけることができません。これをデバッグする良い方法はありますか?
iphone - iPhoneでMY Photoアプリのようなフォルダを作成する方法は?
親愛なる友人私が知りたいのは、iPhoneでMY PHOTOアプリのようなフォルダを作成することは可能ですか? 可能な場合、どのように実装できますか?
今私は作成しようとしています。私はそのカスタマイズされた UIView で UIScrollView を使用しており、セットフォルダーのイメージに 1 つの UIImageView を追加したようです。次に、for ループを使用して静的に作成し、1 列に 1 つずつ配置します UIView Down しかし、2 列になる必要があります。 ?
また、どのように動的に実装できますか? つまり、ボタンアクションごとに1つずつフォルダーを作成します
ios - iOSでブレンドレイヤーを識別するにはどうすればよいですか?
iOSアニメーションをトリガーして、画面上のいくつかの要素を移動しています。そうすると、画面の下部(操作を行っていると思う場所から離れた場所)の領域の色合いがわずかに変化します。iPhoneシミュレータで「ブレンドされたレイヤーを表示」をオンにすると、アニメーションの開始時に何かがその領域をオーバーレイし始めることは明らかですが、何がわかりません。画面に追加しているビューは、スクロールビューとオーバーレイを含む複合ビューです。そこにあるものは、本来あるべき境界を超えており、何を理解することができません。シミュレーターは明らかにそれが何であるかを知っています-ブレンドされたレイヤーとして私のためにそれを赤に着色するのは幸せです-しかし私はそれが何を教えてくれるのかわかりませんレイヤーがブレンドされているので、修正できます。どうすればよいですか?
ETA:挿入されたビューでclipsToBoundsをオンにすると、問題は解決します。ただし、デバッグしようとしているときにレイヤードビューを識別する方法を知りたいのですが。方法はありますか?
ios - didReceiveMemoryWarning と再構築されたインスタンス変数の等価性チェック
「Simulate Memory Warning」を正義のハンマーとして使用して、iOS アプリを調べていますが、(当然のことながら) 予期しない問題が発生しています。しかし、これは私を困惑させた 1 つの問題です。オブジェクトは、一見、等しくないように見えます。
私のView Controller(名前を付けますVCBob
)が…</p>
- サブビューとしての2 つの個別のカスタム(これらのビューと
UIViews
名前を付けましょう)viewA
viewB
- それぞれ独自
UICollectionView
のプロパティとして公開されていますcollectionView
(これらは としてUICollectionViews
使用VCBob
されますdelegates
)
- それぞれ独自
- 押された
UIButton
ときに、他のView Controller(それ以外の場合は重要でないもの)をスタックにプッシュする
をタップするUIButton
と、意味のないView Controllerが表示されます。「Simulate Memory Warning」オプションを起動し、完全に再作成されてビュー階層に再挿入されるため (の時点である限り) 、の内部VCBob
を破棄するようにプログラムされています。での実装は次のとおりです。viewA
viewB
-didReceiveMemoryWarning
viewWillAppear
nil
viewWillAppear
VCBob
次に、ナビゲーション バーの [戻る] ボタンをタップすると、VCBob
プレイに戻ります。2 つのカスタムUIViews
はまだ残っており、それぞれUICollectionViews
にコンテンツがロードされています。UICollectionViewCells
いずれかのコレクション ビューでいずれかをタップすると、-collectionView:didSelectItemAtIndexPath:
メソッドが呼び出されVCBob
ます。ここまでは順調ですね。その実装は次のようになります。
問題は、何も起こらないことです— 何もログに記録されません。これらのif
条件は両方とも false と評価されます。何故ですか?で悪いことをしているかもしれないと思っているようですdidReceiveMemoryWarning
。そこでビューを処分するべきではありませんか?
ios - viewDidAppear: presentViewController:animated:completion: の使用時に呼び出されます。
インタースティシャル広告を表示するかどうかを Web サービスに照会するビュー コントローラーがあります。その場合、別のビュー コントローラーがインスタンス化され、presentViewController:animated:completion: を使用して提示されます。この回答とdocsによると、表示されたView Controllerを閉じるときに viewDidAppear: が呼び出されないと仮定します(それ自体が行います)。概念的には、とにかく、表示しているビュー コントローラーのビューがビュー階層から削除されることはないため、「再表示」する必要はありません。私は明らかに間違っています。それで、何が起こっているのですか?表示されている内容とドキュメントの内容が異なるのはなぜですか?