Ios 使用某种方法管理UIView的数组

Ios 使用某种方法管理UIView的数组,ios,xcode,arrays,uiview,uiimageview,Ios,Xcode,Arrays,Uiview,Uiimageview,你好,我是Xcode中的noob,我想问一下 我有一个图像的UIView数组 NSInteger i; for (i=0; i<CARD_AMOUNT; i++) { [cardArray addObject:[UIImage imageNamed:@"Back.png"]]; } NSInteger i; 对于(i=0;i可以对您试图构建的应用程序进行更多的解释,但本质上是如果您希望在一个视图上显示多张不同的卡(比如,一场纸牌游戏)-您可能需要创建许多UIImageView。从

你好,我是Xcode中的noob,我想问一下

我有一个图像的UIView数组

NSInteger i;
for (i=0; i<CARD_AMOUNT; i++) {
    [cardArray addObject:[UIImage imageNamed:@"Back.png"]];
}
NSInteger i;

对于(i=0;i可以对您试图构建的应用程序进行更多的解释,但本质上是如果您希望在一个视图上显示多张不同的卡(比如,一场纸牌游戏)-您可能需要创建许多UIImageView。从纯设计的角度来看,您可能需要一个名为
CardView
的不同类,它知道如何呈现自己

因此,如果您想要多个不同的视图,所有视图都包含一个图像,请执行以下操作:

for(int a=0; a<CARD_AMOUNT; a++) {
    UIImageView *view = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Back.png"]];
    [cardArray addObject:view];
    // and maybe you'd want to set the frame locations, or add them to your current view as subviews, or .. 
}
或者,更好的是(因为卡片的等级不会改变)-一些
initWithRank:andSuit:
method..dunno


可能还有10种其他的设计方法。

是的,我想创建纸牌游戏,但我不明白如何处理阵列中的图像。你可能一开始就太大了。我会先创建一个名为CardView的自定义UIView或其他东西,它知道如何根据给定的套装和等级进行渲染(你可以让它自己自定义绘制,或者引用你在应用程序中绑定的52个图像名称中的1个)。一旦你可以在一个视图上有一张卡,在不同的图像之间循环(只有一张卡),然后创建和管理这些卡的阵列。顺便说一句,只为当前可见的卡分配内存(而不是整个卡组)可能会更高效。
- (void)setRank: (int)rank andSuit:(int)suit {
    self.image = [UIImage imageNamed:[NSString stringWithFormat:@"card-%d-%d.png",rank,suit];
    self.rank = rank; self.suit = suit;
}