IOS:用 UIImageView 填充 NSArray

Posted

技术标签:

【中文标题】IOS:用 UIImageView 填充 NSArray【英文标题】:IOS: fill a NSArray with UIImageView 【发布时间】:2011-04-13 08:50:26 【问题描述】:

在我的项目中,我创建了 30 个小的 UIImageView,其中我放置了不同的背景。这是我的一组没有背景的 UIImageView

这是一组不同背景的 UIImageView:

我将这组 UImageView 放在 UITableViewCell 中,并使用它们来定义时间线,但这并不重要。 我在 .h 中声明了这些 UIImageView,但现在我必须在 NSArray 或 NSMutableArray 中插入主题?因为在我的代码中(视情况而定)我必须为每个 UIImageView 设置不同的背景。如何在我的代码中组织它们?

【问题讨论】:

【参考方案1】:

您不想将它们全部放在一个数组中。您真正想要做的是为每个视图分配“标签”。然后,您可以使用-[UIView viewWithTag:(int)]; 获取指向您当时想要“交谈”的图像视图的指针。请记住,在标记视图时不要使用负数或 0。

【讨论】:

【参考方案2】:

虽然我建议使用单个 UIView 绘制时间线视图,但在数组中动态创建和存储视图很简单:

NSMutableArray *views = [NSMutableArray array];

NSUInteger viewCount = 30;
NSUInteger index;

for (index = 0; index < viewCount; index++) 
   UIImageView *newView = [[[UIImageView alloc] initWithImage:anImage] autorelease];

   [newView setFrame:CGRectMake(index * width, 0.0, width, height);

   [[self someView] addSubview:newView];
   [views addObject:newView];

记得在某个时候保留或复制views

然后,修改视图:

[[views objectAtIndex:8] setImage:anotherImage];

【讨论】:

以上是关于IOS:用 UIImageView 填充 NSArray的主要内容,如果未能解决你的问题,请参考以下文章

通过图像更改为单个 UIImageView 编写多个动画

我有一个 UIImage,它是 UIImageView 中绘制的黑白图像。如何在触摸时用颜色填充线条内部?

iOS:UILabel 之后的 UIImageView 与多行

如何在具有缩放填充模式的 tableViewHeader 中为 UIImageView 使用固定高度?

iOS UIImageView 调整大小问题

iOS 用 UIImageView 捕获 UIView