2011-01-07 4 views
0

で作成します。 1つのUIViewを追加しました。マルチUIViewのサブクラスは、私は名前が「GameCard」</p> <p>であると私はまた、XIBファイルを作成することをUIViewのサブクラスを作成するループ

ので、私はので、私はこのコードを書いた

をlooppingにivewする各GameCardクラスを追加します。

- (void)viewDidLoad { 
    NSArray *nibViews = [[NSBundle mainBundle] loadNibNamed:@"GameCard" owner:self options:nil]; 
    GameCard *aGameCard = [nibViews objectAtIndex:0]; 
    for (int i = 0; i < [gameWordData1 count]; i++) { 
     int x = i/3; 
     int y = i % 3; 
     GameCard *bGameCard = [aGameCard copy]; 
     bGameCard.frame = CGRectMake((10 + y * 100), (x * 70), 100, 70); 
     [self.view addSubview:bGameCard]; 
    } 
} 

ので、私はので、私は、私はビューでanythinsを見た

- (void)viewDidLoad { 
for (int i = 0; i < [gameWordData1 count]; i++) { 
    int x = i/3; 
    int y = i % 3; 
    CGRect rect = CGRectMake((10 + y * 100), (x * 70), 100, 70); 
    GameCard *aGameCard = [[GameCard alloc] initWithFrame:rect]; 
    [self.view addSubview:aGameCard]; 
    NSLog(@"%i", [[self.view subviews] count]); 
} 
} 

このコードを試してみてくださいビュー

に一つだけGameCardクラスを見ました。 GameCardクラスが作成されたようです。

私のコードは間違っています。

私の英語について申し訳ありません:)

+0

xとyの引数は、行の中で逆になっていますか?CGRect rect = CGRectMake((10 + y * 100)、(x * 70)、100,70); – jamihash

答えて

2

私は、各ビューのnibファイルをロードすることをお勧め。プロセスを高速化するために、NSBundleの代わりにUINibを使用してデータをロードすることができます。

- (void)viewDidLoad { 
    UINib *nib = [UINib nibWithNibName:@"GameCard" bundle:nil]; 
    for(int i = 0; i < [gameWordData1 count]; i++) { 
     int x = i/3; 
     int y = i % 3; 
     NSArray *nibViews = [nib instantiateWithOwner:self options:nil]; 
     GameCard *aGameCard = [nibViews objectAtIndex:0]; 
     aGameCard.frame = CGRectMake((10+y*100),(x*70),100,70); 
     [self.view addSubview:aGameCard]; 
    } 
} 

PS:@jamihashはコメントで述べたように、あなたが誤っていCGRectMakeにxとyを切り替えることがあります。私はそれをあなたのコードで使った方法と同じように使いましたが、使用する前にチェックしてください。

+0

+1「UINib」を認識していませんでした。 – Anurag

+0

だから、[nib instantiateWithOwner:self ...] selfはビューですよね?私が親のViewControllerからコードを書いているなら、[nib instantiateWithOwner:myCustomView ...]を正しく指定するべきですか? – aneuryzm

+0

'self'はNIBの所有者として指定されているオブジェクトで置き換えてください。質問では、ペン先をロードするためにselfが使用されていましたので、私もそれを使用しましたが、所有者であるはずのオブジェクトを使用する必要があります。 – ughoavgfhw

関連する問題