0

我开始开发一个 iphone 应用程序,因为我不像大多数人那样有经验,所以我不知道如何动态地重新创建图像视图、标签和按钮。基本上会有一个存储一些数据的数组。但是数组的大小会有所不同,因此我无法在情节提要上制作静态 VC。我想使用以下模板,然后数组应使用此模板根据需要多次重新创建它:

http://www.dropinsight.eu/screenshot1.png

提前感谢您可以给我的任何帮助。

干杯

最大限度

4

3 回答 3

2

您可以考虑将您的图像视图、标签和按钮放在UITableView.

不要UIViewController在情节提要中使用a ,而是使用UITableViewController. 这将是 tableView 的数据源和委托,可用于创建UITableViewCells。根据您的示例,每个单元格都可以包含一个 imageView、文本和 2 个按钮

有关更多详细信息,请参阅Apple 文档

于 2012-05-10T16:30:00.880 回答
1

如果我正确解释了您的问题,您希望有某种项目列表,它可以详细显示每个项目的信息。

我会看一下 UITableView,它是一个用于显示多行数据的类,您可以修改其行为以显示与您在此处描述的视图不同的视图。

Xcode 有几个 iOS 应用程序模板,其中一个是带有 tableview 的应用程序。我建议打开一个示例项目并阅读这样的教程:http ://cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html

于 2012-05-10T16:28:47.713 回答
1

关于使用 UITableView 将数组中的每个条目显示为单元格的先前答案是您想要的方式。要回答有关“动态创建”每个项目的问题,您需要像这样在 cellForRowAtIndexPath 中创建每个 UI 元素:

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(x,y,w,h)];
[imageView setTag:1];
[cell addSubview:imageView];
[imageView release];

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(x,y,w,h)];
[label setFont:[UIFont systemFontOfSize:X]];
[label setTag:2];
[cell addSubview:label];
[label release];

UIButton *button1 = [[UIButton alloc] initWithFrame:CGRectMake(x,y,w,h)];
[button1 setImage:[UIImage imageNamed:@"ABC"] forState:UIControlStateNormal];
[button1 addTarget:self action:@selector(someMethod:) forControlEvents:UIControlEventTouchUpInside];
[button1 setTag:3];
[cell addSubview:button1];
[button1 release];

etc

然后在您的 willDisplayCell 方法中,您将设置为每一行更改的任何 UI 项的内容,如下所示:

UIImageView *imageView = (UIIamgeView *)[cell viewWithTag:1;
UILabel *label = (UILabel *)[cell viewWithTag:2];

[imageView setImage:[UIImage imageNamed:@"XYZ"]];
[label setText:@"XYZ"];
于 2012-05-10T17:02:52.613 回答