-1

以下を使用して、ビューを作成し、そこに nib をロードできます。

CGRect newViewRect = CGRectMake(0, self.view.bounds.size.width - 335, 335, 400);
UIView *newView = [[UIView alloc] initWithFrame:newViewRect];
newView = [[[NSBundle mainBundle] loadNibNamed:@"TheNewViewNib" owner:self options:nil] objectAtIndex:0];

ここに問題があります。xib ファイルに が既に含まれているUIView場合、XCode は「lldb」のみをログに記録UIViewしますが、xib ファイルで を削除して他のオブジェクトを追加すると、完全に正常に表示されます。

しかし、私はそのUIView中のすべてのものを全体にロードしたいので、ペン先にUIView.

ご協力いただきありがとうございます。

4

1 に答える 1

0

使用するとき

 newView = [[[NSBundle mainBundle] loadNibNamed:@"TheNewViewNib" owner:self options:nil] objectAtIndex:0];

このコードは、nib ファイルのコンテンツによって UIView 変数「newView」をリロードします。したがって、このコード スコープの前に UIVew 変数を作成するのは無意味です。

ビューが合成されている場合。カスタム クラスで UIView をサブクラス化し、各コンポジットに IBOutlet を追加し、これらのコンポジットで xib を作成し、IBoutlets にリンクします。次に、上記のように xib をロードします。

 newView = [[[NSBundle mainBundle] loadNibNamed:@"TheNewViewNib" owner:self options:nil] objectAtIndex:0];

または、サブクラス化せずにコンポジットにアクセスするには、サブビューのタグを使用できます。xib で各ビューのタグを設定し、[view viewWithTag:tag] でそれらにアクセスします。

于 2013-07-26T12:19:39.983 に答える