問題タブ [uinib]

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

objective-c - Objective-C - UINib インスタンスが与えられた場合、カスタム UIView を初期化するにはどうすればよいですか?

nib から初期化したいカスタム UIView があります。nib の名前にアクセスすることはできません。私が持っているのは UINib のインスタンスだけです。

この UINib オブジェクトを使用して UIView を初期化するにはどうすればよいですか?

NSBundle で loadNibNamed メソッドを使用したくない

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

iphone - UINibを使用してcustomCellプロパティをnilに設定する理由

UITableViewのcellForRowAtIndexPathにUINibメソッドを使用したAppleのサンプルコードをいくつか見ています。

最後の2行がよくわかりません

誰かがこれらの最後の2行で何が起こっているのか説明できますか?ありがとう。

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

iphone - UINib を使用して UITableViewCell のアウトレットを割り当てる

Apple の WWDC 2010 コードから TableViewUpdates/TVAnimationGestures を調べましたが、UITableViewCell サブクラスの複製に問題があります。これは私がやったことです:

いくつかの単純なプロパティを持つ新しい UITableViewCell サブクラスを作成しました。

.m では、メモリを解放するだけです。IB で、IB にドラッグしたばかりの UITableViewCell のクラスを TargetDetailTableViewCell に変更します。TargetDetailTableViewCell からのアウトレットを適切なラベルと画像ビューに接続します。

クラスでこれを使用したい:

.m で:

実行すると、次のエラーが表示されます。Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'

Apple の例と私の例との違いは、IB で UITableViewCell のサブクラスを Ctrl キーを押しながらクリックすると、File's Owner プロパティが設定されていることだけです。セルを使用するクラスのプロパティとして宣言されているため、コンセントをどのように接続したかはわかりませんが、物理的な IB 接続はありません。誰かが私にそれを説明できますか、それとも私が間違っていることを説明できますか?

また、誰かがこれを説明できれば、それは素晴らしいことです:

ペン先を作成し、メモリからインスタンス化されるペン先の所有者は、あなたがいるクラスまたは自己(私のビューコントローラー)です。それから最後の 2 行は私を混乱させます。新しく作成されたオブジェクトを指すようにセルに指示し、次に新しく作成されたオブジェクトを nil に設定するようなものです。私の頭の中では、セルもnilを指していると思います。ありがとう。

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

ios - nib からロードされたサブビューを自動サイズ変更するときの予期しない動作

多くの入力フィールドを持つある種の「フォーム」を作成しています(テキストフィールド、スイッチ、ピッカーからの情報収集など)。
このフォームには 6 つのセクションがあり、一部の回答の性質はインターフェイスの残りの部分に影響を与えます (たとえば、車を所有していると選択すると、その下にさらに多くのオプションが表示されます)。

mainViewそれを達成するために、 のサブビューである非常に大きなビュー ( ) の作成を開始しましたが、大きくUIScrollViewなりすぎたので、セクションごとに 1 つの nib ファイルを作成することにしました。各 nib ファイルのファイル所有者を my に設定し、MainFormViewController各ビュー (section1View、section2View など) のアウトレットを作成します。セクション ビューを次の-viewDidLoadようにロードします。

これでうまくいくようですが、私の問題は、これらのセクション サブビューの高さを変更すると、残りのサブビューを高さの変更に適応させることができないことです。たとえば、最初のセクションの高さを変更すると:

残りのビュー (section2View、section3View など)は、私が試した向きに関係なく、フレームの変更に「追従」しません。mainView私の理解ではmainView、サブビューの自動サイズ変更オプションに従って、のフレームを変更すると、そのサブビューのフレームに影響を与えるはずですよね? 私の場合、サブビューは同じ場所にとどまります。
Interface Builder のメイン ビューの [サブビューの自動サイズ変更] オプションが選択されています。

誰でもそれで私を助けることができますか?

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

ios - instantiateWithOwner: メソッドの使用時に awakeFromNib が呼び出されない

少し問題があり、物事がどのように機能するかを理解する必要があります。SO内で検索しましたが、有効な解決策が見つかりませんでした。

私のシナリオは次のとおりです。

methodUITableViewControllerを使用して (テーブル内で) セルをロードする があります。UINibinstantiateWithOwner:

セルは正しく表示されます。awakeFromNibここで、さまざまな基準に基づいて各セルをカスタマイズする必要があります。それを行う正しい場所はメソッドにあると思います。たとえば、CustomTableViewCell.m内でawakeFromNibは、次のようにオーバーライドします。

でもawakeFromNib呼ばれない。

私が間違っていることを説明していただけますか?

前もって感謝します。

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

ios - 別のXIBでクラスを指定するときに、CustomView.xibを使用してCustomViewをロードするにはどうすればよいですか?

CustomView.xibファイルを使用してCustomView:UIViewを作成します。次に、ビューを別のXIB(例:UIViewController.xib)にドラッグして使用し、クラス:customViewを選択します。

CustomViewとaddSubViewをanotherViewに初期化すると、正常にロードできます。

//CustomView.m

この場合、CustomCellを別のXIBに描画して再利用し、クラスをCustomViewとして指定します。awakeFromNibが呼び出されることは知っていますが、CustomView.xibをロードする方法がわかりません。どうやってするか?

*編集:

initWithCoderは、クラスを指定するときにも呼び出されますが、ループが作成され、loadNibNamedでクラッシュします。どうして?

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

ios - UITableViewCell の XIB 内の複数の UIView

UIScrollView を使用してカスタム UITableViewCell を作成しようとしています。UITableViewCell (UIScrollView のみを含む) と、セルの scrollView のコンテンツ ビューである UIView を含む .xib があります。

さて、カスタム セルを表示する UITableView のコードは次のとおりです。

RecessCell クラスのヘッダー:

scrollView は、各セル内の UIScrollView のアウトレットです。contentView は、UIScrollView のコンテンツ ビューのアウトレットです。

さて、これまでのところすべてが合法に見えますが、アプリを実行すると:

*キャッチされない例外 'NSUnknownKeyException' が原因でアプリを終了しています。理由: '[ setValue:forUndefinedKey:]: このクラスは、キー contentView のキー値コーディングに準拠していません。

私はその実行時エラーについてたくさん読んだことがありますが、私が見つけることができるのは次のとおりです:

  • contentView が実際にヘッダーで宣言されていることを確認する必要があります。(ご覧のとおり、そこで宣言されています)

  • cellForRow で UITableViewCell を RecessCell に変更する必要があります。

この問題を解決するにはどうすればよいですか? カスタム UITableViewCells を作成するのはとても難しいですか?

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

objective-c - nibファイルを手動でロードするときにinitまたはinitWithNibNameが呼び出されない

nibファイルを手動でロードしています(UIViewの再利用性のため)、nibファイルをロードするためのコード

nib名をロードした後、UIScrollViewに追加しています

問題は、この方法でnibファイルをロードすると、initおよびinitWithNibNameメソッドが呼び出されないことですが、どうすれば解決できますか?

前もって感謝します、

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

iphone - UINib ファイルは、hime に開始するように指示するまで開始しないでください。

2 つのビューを追加した nib ファイルがあります。ここで、コード内の 2 番目のビューを開始 (init) したいと思います。これは、開始後に何度も表示するためです。したがって、次のようなnibファイルをロードしようとすると:

開始後、2番目のビューが正常に表示されます。しかし、私の最初の見解は、私が望んでいないことも示しています。最初ではなく、2番目のビューを開始したいだけです。今、私はこれのために何をしますか。