問題タブ [loadnibnamed]

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

ios - NIB からのカスタム ビュー + 自動レイアウト

次のコードを使用して、カスタム ビューをロードする nib を作成しました。

しかし、自動レイアウトを有効にすると、次のエラーが発生します。

ビューのサイズを変更できるようにしたい。これらの削除できない自動レイアウトのサイズ制限は使いたくありません。優先度を 1 に設定しても機能しませんでした。スーパービューでは、明らかに制約はありません。このビューを普遍的にしたいと考えています。

これどうやってするの?

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

objective-c - loadNibNamed:owner:options:designate initializer を使用して nib をロードする

インスペクターでクラス ( ) が割り当てられた nib ファイルがあるUIViewので、そのビューを表示する必要があるときは、メソッドを使用してロードしました。 loadNibNamed:owner:options:

したがって、ペン先をロードするときに初期化を行う必要がある場合、ペン先のUIViewクラスでそれを知る方法initWithNibName:bundleは何UIViewControllerですか?

助けていただければ幸いです:)

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

ios - NIB をロードすると、ステータス バーが完全に黒くなり、黒のままになります

私のオープニング画面 (私のアプリのメイン画面) は、すべてがプログラムによって行われる UIView です。「設定」画面に XIB を使用したかったのですが、ステータス バーの上部に奇妙な完全に黒いバーが表示されます。

NIBロード後の画面

次のように切り替えます。

回転させる必要がありましたが、CGAffineTransformMakeRotation をコメントアウトしても黒いバーが表示されます。「ステータスバー」と呼ばれるXIB設定は「ライトコンテンツ」に設定されています。

XIB 画面を終了すると、次のコマンドを使用して元のビューに戻ります。

でも黒帯はそのまま!奇妙なことに、ビューの境界も実際にはステータス バーの高さだけ下に移動しました (これは、XIB を起動して戻った後にのみ発生します)。これは、私を助けようとしている人に何が起こっているかの手がかりになるかもしれません。皆さんありがとう

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

ios - loadNibNamed はどのように機能しますか? UIView アウトレットが loadNibNamed を使用して初期化されない

私はこれが非常に簡単であることを知っていますが、あまりにも多くの髪を引っ張った後、私は解決策にはほど遠い.

XIB などを使用してビューを作成する方法を説明するチュートリアルを見てきました。しかし、それらのどれも、私がここにいる状況に対処していません。

ラベルとボタンがほとんどないカスタム UIView サブクラスである XIB ファイルがあります。UIView サブクラスは再利用可能です。これが、単一の View コントローラー内にアウトレットを配置できない理由です。その結果、このビューの個々のコントロール (サブビュー) をカスタム UIView 自体に格納します。すべてのView Controllerに含まれるこのカスタムビューのサブビューをView Controllerが所有するべきではないため、これは論理的です。

問題は、UI 全体を完全に初期化する方法がわからないことです。

UIView サブクラスのコードは次のとおりです。

後で、この UIView の横向きにも同じ XIB ファイルを使用する予定であり、同じ XIB で横向きのコントロールを持つ同じ上記のアウトレットを使用する予定です。

そして、ここに実装があります:

うまくいったもの:

ビューコントローラーからの呼び出しに成功しましたinitWithFrame:frame。そうすれば、すべてのコントロールが適切に初期化されていることがわかりました。しかし、すでに XIB を描画しているのに、なぜフレームを提供する必要があるのでしょうか? XIB の意図された用途であるため、loadNibNamed はフレーム設定とレイアウトを処理するべきではありませんか?

loadNibNamed が所有者オブジェクトを必要とする方法にも困惑しています。XIB から同じオブジェクトを取得するために、オブジェクトが既に必要なのはなぜですか? それも中途半端?

助けてください...

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

objective-c - 脱獄デバイスで loadNibNamed を使用するとクラッシュする可能性があります [UIDeviceRGBColor スーパービュー]: 認識されないセレクター

私のコードは次のようになります。

ただし、上記のコードのコメントとして、Crashlytics から iPhone 5/5s ユーザー向けのクラッシュ レポートを取得しています。

私のアプリは縦向きのみをサポートしているため、5/5 秒で高さが 568 ではないことに驚きました。何百人ものアクティブ ユーザーがいますが、4 人のユーザーで発生したクラッシュは 12 回だけです。

また、iPhone 5/5s デバイスが間違ったペン先 (3.5 インチ スクリーン用) をロードしても、クラッシュすることはありません。(私はちょうどテストしました。)

http://crashes.to/s/1ddc169b801

Crashlytics は、クラッシュの 90% がジェイルブレイク デバイスで発生していることも示しました。

クラッシュ レポートのリンクに理由が示されていますが、nib ファイルで組み込みの UILabel、UIImageView、UITextView のみを使用しているため、理由がわかりません。

脱獄デバイスで4インチの画面を使用しているかどうかを確認するためのアドバイスを誰かに教えてもらえますか? 2 番目の質問は、loadNibNamed 内でのクラッシュの原因は何ですか?

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

ios - 複数回の loadNibNamed 呼び出しの後、自動レイアウトが消える

その中に他のいくつかのUIViewをロードする1つのUIViewControllerがあります

情報 :

  • UIViewController には .xib がなく、UIView を制御してロードするだけです。
  • UIViews : .xib によってロードされます (必要なすべての UIView に同じ .xib を再利用しています) <<問題??
  • UIViews : 自動レイアウトは .xib にあります

最初に1つのビューをロードし、1つのアクションボタンでメソッドを再度呼び出して別のビューをロードすると、自動レイアウトが消えます...しかし、最初は正しいです(オンになっています)。

ロードに使用する方法

質問 : 自動レイアウトが最初にロードされたビューでのみ OK になるのはなぜですか? 自動レイアウトをリセットまたは更新できるものは何でもあります。