問題タブ [subviews]

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 投票する
5 に答える
878 参照

ios - ARCでサブビューを追加するときのランダムEXC_BAD_ACCESS

私のアプリはシミュレーターで完全に動作していますが、デバイスでアプリをテストすると、最終的にランダムな EXC_BAD_ACCESS が発生し、アプリがクラッシュします。

数日間のテストの後、このエラーの原因となっているコードを見つけたと思います。ある時点で、いくつかのサブビューをコントローラーのメイン ビューに追加する必要があります。ユーザーがアプリを操作すると、それらのサブビューがスーパービューから削除され、新しいサブビューが追加されます。サブビューを削除しないとアプリはクラッシュしませんが、サブビューを削除すると、アプリは最終的に EXC_BAD_ACCESS を取得してクラッシュします。

削除されたサブビューは、すでに完全にリリースされているか、そのようなものであるときにリリースメッセージを取得するようです...これは私がARCを使用している最初のアプリなので、おそらく何かが欠けています...

関連するコードは次のとおりです。

サブビューの作成方法は次のとおりです。私はこのコードを特に誇りに思っているわけではなく、リファクタリングが必要ですが、以前は機能しなかった理由を理解する必要があります。

これはしばらくの間機能し、その後クラッシュします。つまり、ビューが数回削除および追加され、すべて問題ないように見えますが、しばらくするとアプリは EXC_BAD_ACCESS を取得します。

どんな助けでも永遠に感謝します!

PS: 私の英語でごめんなさい

編集:デバイスでゾンビを使用できず、スタックトレースが表示されません。

EXC_BAD_ACCESS を取得した後、lldb で「bt」と入力すると、次のようになります。

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

ios - iOS - Interface Builder - 要素をサブビューとして UIView に追加する

インターフェイスビルダーにはviewControllerがあり、それはメインビュー(ビューA)です。メイン ビューに別の UIView (ビュー B) を追加したので、ビュー B にさらに要素を追加したいのですが、Xcode にそれらをビュー A のサブビューではなくビュー B のサブビューとして認識させたいと考えています。

Interface Builder で要素をビューにドラッグすると、最初はメイン ビューに追加されます。次に、それらをドラッグして、Interface Builder ナビゲーターの別のビューの下に移動できますが、それでもそのビューのサブビューにはならないようです。

何か案は?

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

iphone - サブビューのフレームサイズを自動的に変更しないアニメーションでuiviewのフレームサイズを変更する

私は11個のサブビュー(7つのボタン、2つのラベル、2つのイメージビュー)を含むuiview(「popupVw」という名前の親ビュー)をアニメーション化するために取り組んでいます。最初のフレーム サイズは次のとおりです。

& 新しいフレーム サイズ:

基本的に、ビューの高さを 0 から 300 に変更しています。そして、再び 300 から 0 へ。show hide アニメーションを実現します。

高さ 0 から 300 まで表示される画面中央のポップアップと考えてください。このポップアップには、右上隅にサブビューと閉じるボタンが含まれています。この閉じるボタンをクリックすると、ポップアップの高さが 300 から 0 に再び減少します。親ポップアップ ビューは正しくアニメーション化されます。ただし、高さが最大になる前にサブビューが表示されます。親ビューの高さが再び 0 になるまで表示されます。したがって、基本的に親ビューのみがアニメーション化され、内部ビューはアニメーション化されません。

アニメーションは親ビューで正しく機能していますが、サブビューは親ビューでアニメーション化されていません。その結果、uiview の高さを 300 から 0 に変更すると、すべてのサブビューがまだ表示され、親 uiview の高さだけが 0 になります。

それらのアニメーションを個別に配置する必要がありますか? はいの場合、高さの変更のためにこれを行うにはどうすればよいですか? または、同じ結果を得るために使用できる他のアプローチはありますか?

マスクの自動サイズ変更を試みました。しかし、それは私にとってはうまくいきません:

以下は問題のスクリーングラブです:

ここに画像の説明を入力 ここに画像の説明を入力 ここに画像の説明を入力

右上隅の十字ボタンは、アニメーション ポップアップのサブビューです。私が欲しいのは、十字ボタンがアニメーションビューの外にあってはならないということです。たとえば、2 番目のスクリーンショットでは、半十字ボタンのみが表示されます。外側の部分は表示されません。

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

constraints - サブビューの置換をサポートする方法を自動レイアウトしますか?

私の問題は、autolayout (有名な) の使用に関連しています;)

同じView Controllerでサブビューの2つの状況を管理して、ある状況から別の状況に(そして相互に)移動できるようにしたいと思います。

次の図で問題を紹介しましょう。

2 つの状況での同じビュー コントローラーの図

問題は、ある状況から別の状況に簡単に切り替えることができるように、Interface Builder で自動レイアウトの制約を表現する方法がわからないことです。より正確に言うと、サブビュー VIEW_B1 と VIEW_B2 は高さが異なる別のサブビューです。

表示したくないサブビュー (VIEW_B1 または VIEW_B2) を既に非表示にしようとしていますが、この場合、VIEW_C は Y 位置に留まります。VIEW_C を VIEW_B* (非表示ではないもの) に接着したいのです。

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

ios - UIPickerView サブビュー

UIPickerview のすべてのサブビューを取得したい。私が試してみました :

ViewDidLoadで。次に、サブビューの数が 0 に返されます。

pickerview のすべてのデータソースおよびデリゲート メソッドに含まれます。結果は変わっていません。画面にピッカービューが表示される前に、いくつかのサブビューを削除したいと思います。画面に表示される前にすべてのサブビューを取得するにはどうすればよいですか? 前もって感謝します

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

ios - グラデーションのない UIView のシャドウ ?

影の効果

グラデーションなしでシャドウ効果を実現する方法を知っている人はいますか? 以下のスクリーンショットのように

もう 1 つの懸念事項は、サブビューのシーケンスです。つまり、前のビューが後ろのビューの効果を隠してしまう可能性があります。これを克服する方法は?