动态创建imageview,标签和按钮

时间:2012-05-10 16:24:37

标签: iphone objective-c

我开始研究iphone应用程序,因为我没有大多数人的经验,所以我无法弄清楚如何重新创建动态图像视图,标签和按钮。基本上会有一个数组存储一些数据。但是,阵列的大小会有所不同,因此我无法在故事板上创建静态VC。我想使用以下模板,然后数组应该使用此模板根据需要重新创建它:

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

提前感谢您提供任何帮助。

干杯

最高

3 个答案:

答案 0 :(得分:2)

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

不要在故事板中使用UIViewController,而是使用UITableViewController。这将是tableView的数据源和委托,可用于创建UITableViewCell。每个单元格可以包含imageView,文本和每个示例的2个按钮

有关详细信息,请参阅Apple docs

答案 1 :(得分:1)

如果我正确地解释了你的问题,你想要一些项目清单,它们可以详细显示每个项目的信息。

我会看看UITableView,它是一个用于显示多行数据的类,你可以修改它的行为来显示一个与你在这里描述的视图不同的视图。

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

答案 2 :(得分: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"];