我创建了一个名为“GameCard”的UIView子类
我还创建了xib文件。并添加了一个UIView。
所以我想在循环中添加每个GameCard类 所以我写了这些代码。 所以我在视图中看到了一个GameCard类 所以我试试这段代码 我看到了任何东西。但似乎创建了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];
}
}
- (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]);
}
}
答案 0 :(得分:2)
我建议为每个视图加载nib文件。为了加快处理速度,您可以使用UINib而不是NSBundle来加载数据。
- (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。我在你的代码中使用它的方式,但在使用它之前检查它。