問題タブ [superview]

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 に答える
8574 参照

ios - スーパービューへのサブビュー アクセス

コンテンツ ビューを含む scrollView があり、最後にコンテンツ ビューのサブビューがあります。[scrollView scrollEnabled:NO]サブビューからのスクロールを止めたいです。メソッドを取得できますか?

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

ios - スーパービューからオブジェクトを削除しようとすると、Objective-c プログラムがクラッシュする

ベローは、ボタンを押したときに呼び出しているコードです。ボタンは以下のメソッドを呼び出します。しかし、「認識されないセレクターがインスタンスに送信されました」というエラーが表示されます。私は何を間違っていますか?オブジェクトは、このメソッドが呼び出される前に別のメソッドで宣言されています。ボタンも非表示にしようとしましたが、クラッシュします。誰か助けてください。

クラッシュは次のとおりです。

スレッド 1: [buttCheck removeFromSuper]; 行の EXC_BAD_ACCESS"

-[__NSCFDictionary removeFromSuperview]: インスタンス 0x686b020 2012-06-24 19:08:12.175 HeadsUp[59630:f803] に送信れた認識されないセレクタインスタンス 0x686b020' に送信

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

ios - UIViewがまだそこにあるかどうかを確認する方法は?

デバイスの向きに応じて、いくつかのカスタムサイズパラメータをUIViewに設定する必要があります。次のように、独自のビューコントローラを持たないUIViewをロードします。

main.hで

main.mで

。。。

もう必要ない場合は、スーパービューから削除します

削除後、ログには(null)と表示されます

私がこのように行うサイズ調整

メインビューからサブビュー(socialAcitonView)を削除しない限り、これまでのところ問題なく動作します。その後、self.socialActionViewにアクセスできなくなります。私はここでstackoverflowのような多くの例を見てきました

また

また

また

しかし、それらのどれも機能しません。デバッガーは常にアクセス不良の例外原因をスローします。(私の観点から)オブジェクトがもう存在しないことを意味するもの。しかし、スーパービューから削除して(null)と言った後、ロガーはどのようにアクセスできますか?

ビューに専用のビューコントローラーを指定し、didRotateFromInterfaceOrientationを配置したほうがよいので、socialActionViewが存在するかどうかを確認する必要はありません。とにかく、UIViewをチェックする方法があるかどうかを尋ねたいと思います(null)かどうか。すべてのコードをview/viewcontrollerのカップルに変更する前に。

ヒントをいただければ幸いです。

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

objective-c - ViewControllerの2回目の起動後のSuperviewはゼロです

私は何時間も費やしましたが、これを理解することはできません。ここで起動される詳細ビューコントローラ(UITableView)があります:

詳細ビューコントローラには、以下のメソッドを呼び出して、ユーザーの選択を確認するスライドインスライドアウトアニメーションを表示するボタンメソッドがあります。

}

アニメーションが終了したことを示すConfirmActionViewControllerによって呼び出されるプロトコルメソッド。

これは、最初にボタンを押したときに完璧に機能します。詳細コントローラーをポップしてスタックに戻し、ボタンをもう一度押すと、何も起こらず、その後メソッドを呼び出すたびに詳細コントローラーのスーパービューはゼロになります。viewWillAppearSuperviewは、confirmLastActionWithMessageメソッドに到達した場合にのみ、詳細ビューのメソッドでnilではありません。その間に他のユーザー操作は発生しません。どうすればスーパービューを取り戻すことができますか?アニメーションなしで機能する同様のコードがあります。

また、スタックからポップされたときに、詳細ビューコントローラーがdeallocを呼び出さなかったことにも気づきました。問題がどこにあるのかわからない。

ありがとう。

編集1

わかった。addSubview行を次の行に置き換えました。

[self.view insertSubview:self.confirmActionViewController.view atIndex:0];

アニメーションビューは、テーブルセルの1つの下に表示されました。テーブルセルの1つがスーパービューを盗むことができますか?

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

iphone - コンテナの遷移時にサブビューを表示する

あるビュー コントローラーから別のビュー コントローラーに移行する場合、現在のコンテナー内のサブビューをアニメーション化して、一時的に上部に留まり、移行が完了した後に新しいコンテナーに配置することはできますか?

私の言いたいことを理解するには、iOS <5 の写真アプリから写真を電子メールで送信してみてください。写真は、しばらくの間一番上に表示された後、メール コンポーザに配置されます。私の場合、あるコンテナから別のコンテナに移行するときに同じ効果が必要です。

0 投票する
3 に答える
14022 参照

ios - iOS: UIView が他のビューに追加されたことを検出する

CustomView クラスが他のビューに追加されたとき、またはスーパービューが変更されたときに検出する必要があります。

0 投票する
6 に答える
4284 参照

ios - 黒い画面-スーパービューはviewWillAppearではnilです

タブ付きのアプリケーションテンプレートから作成したアプリケーションがあります。(ARC、iOS 4)

  • いくつかのタブがあり、2。タブviewcontroller.view(ViewCont2)にボタンがあります。
  • このボタンは、presentModalViewControllerメソッドによって別のviewcontrollerの(ModalViewCont)ビューをロードします。
  • ModalViewContには、dismissModalViewControllerAnimatedを呼び出す閉じるボタンがあります。
  • ViewCont2のviewDidDisappearで、ビューをアンロードするためにself.view = nilおよびその他のアウトレットをnilに設定しているので、次に画面に表示されたときにビューが新しくロードされます。これを行っているのは、ビューコントローラのいくつかの一般的なプロパティを初期化し、viewDidLoadメソッドにいくつかのボタンやラベルなどを追加する基本クラス(BaseViewCont)を継承しているためです。したがって、この基本クラスから継承するViewControllerは、viewDidLoadメソッドで必要に応じてこれらのプロパティを異なる方法で構成できます。

問題

これで、ModalViewContが画面に表示されているときに、ホームボタンを押してアプリケーションをバックグラウンドに戻し、アプリケーションを元に戻した後、ModalViewContを閉じると、ViewCont2のビューは返されませんが、下部にタブバーがある黒い画面になります。アプリケーションのバックグラウンド/フォアグラウンドを設定しなくても同じことが起こります。2.タブをタップする前に他のタブをタップした場合(編集:これは、viewDidDisappearではなくviewWillDisappearでself.viewがnilに設定されている場合にのみ発生します。)

ViewCont2が新しいビューをロードすると判断しました(参照を確認しました)が、ビューのスーパービューがnilであるため、新しいビューは表示されず、黒い画面が表示されます。

うまくいかなかったこと

  • [self.viewremoveFromSuperview]を使用します。self.view = nilを設定する前に、
  • viewWillAppearで、親にビューを追加します。[self.parentViewController.view addSubview:self.view]; これはスムーズに機能しませんでした。ビューは画面の少し上に配置されました。これは、階層に他のいくつかのスーパービューがあるためです。

私が検討したソリューション。

  • 1-スーパービューがviewDidLoadでnilの場合、viewWillAppear (仮定)で使用可能になります。したがって、ViewCont2のviewWillAppearメソッドを使用して、次の方法でスーパービューを正しくロードできます。

_

  • 2-基本クラスのviewWillAppearメソッドを代わりに初期化に使用できるため、ビューをアンロードする必要はありません。したがって、パフォーマンスを最適化することができ、ビューが消えるたびにアンロードされることはありません。また、フラグが表示されるたびに実行するのではなく、フラグをチェックして初期化を1回だけ実行することをお勧めします。

質問

  • 1-スーパービューが復元されないのはなぜですか?私はそれのために何をすべきですか?(これは、代替案を試すのではなく、理解して解決したい主な問題です...)
  • 2-アンロードするために表示するnilを割り当てることで、何か問題が発生していますか?もしそうなら、このような場合(タブ付きアプリケーション)にビューを適切にアンロードするにはどうすればよいですか?
  • 3- 1.ソリューションに何か問題がありますか?応急修理のように見えますか?superviewとviewWillAppearに関するその仮定は正しいですか?

編集: viewDidLoadが必要以上に早く呼び出された場合(つまり、viewDidDisappearではなくviewWillDisappearでビューがnilledされた場合)、スーパービューが設定されていないようです。

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

ios - スーパービューを変更するとUIPanGestureRecognizerが壊れます

スーパービューからドラッグできるUIViewを実装しようとしています。

UIPanGestureRecognizerドラッグできるようにしたいビューにを追加してみました。ただし、UIViewをスーパービューから削除して別のビューに追加すると、ジェスチャレコグナイザーが機能しなくなるようです。

UIGestureRecognizerStateBeganコメントアウトされたコードを使用すると、他の2つのブロック内のコードは正しく機能しますが、元に戻すと、UIGestureRecognizerStateChanged状態とUIGestureRecognizerStateEnded状態が実現されません。

何が問題になっていますか?

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

objective-c - IOS - Superview がランドスケープ モードでタッチ イベントをキャッチする

プログラムでUIViewControllerを作成しましたが、そのビューを一般的なビューに挿入すると、UIViewの下部にある300ピクセルがタッチイベントを取得せず、タッチイベントがメインのUIViewであるスーパービューによってキャッチされます。

重要な事実は、横向きモードのときにのみ発生することです。

何か案は?

編集: スクリーンショットを次に示します。オレンジ色の背景は独自の UIViewController を持つ UIView であり、触れる必要がありますが、私が言ったように、下からの最後のピクセル (約 275) がメインの UIViewController によってキャッチされています。したがって、ボタンは呼び出されません。横向きモードのみ!

ギャラリーのスクリーンショット