0

有人可以帮我提供一个示例代码来说明如何做到这一点:我有我的 UITableView 并且我已经设置了所有内容,我希望当你单击一个单元格时它会给你一个图像,我已经有了,有 8 个图像,因此 8 个单元格每个都有不同的名称,那么我该怎么办?例如我的单元格名称,“苹果”,“橙色”,“香蕉”等等,所以我需要为每个单元格提供一张图片,但当然在订单,我的意思是香蕉和香蕉等等。我知道这很简单,但是我还没有找到任何示例,而且我对这一切都很陌生,谢谢,XD ...

4

2 回答 2

3

你需要的是两个用文本描述和图像构建的 NSArray(这也可以用一个NSArrayNSDictionary两个键值对来完成)。在这种情况下,每个字典都有两个键值对(一个用于文本,一个用于图像)。

但为了简单起见,我们将使用两个 NSArray。

所以是这样的:在viewDidLoad

textArray = [[NSArray alloc] initWithObjects:@"Banana",
                          @"Orange",
                          @"Apple",
                          @"Grape",
                          @"Pineapple",
                          @"Apricot",
                          @"Pear",
                          @"Kiwi", nil];
imagesArray = [[NSArray alloc] initWithObjects:[UIImage imageNamed:@"Banana.png"],
                        [UIImage imageNamed:@"Orange.png"],
                        [UIImage imageNamed:@"Apple.png"],
                        [UIImage imageNamed:@"Grape.png"],
                        [UIImage imageNamed:@"Pineapple.png"],
                        [UIImage imageNamed:@"Apricot.png"],
                        [UIImage imageNamed:@"Pear.png"],
                        [UIImage imageNamed:@"Kiwi.png"],
                        nil];

*这假设您的项目中有 png 图像,名称如上所述。

然后对于UITableView数据源和委托方法:

#pragma mark - UITableView Methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections.   
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return count of our text array
    return [textArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"tvCell"];


    cell.textLabel.text = [textArray objectAtIndex:indexPath.row];
    cell.imageView.image = [imagesArray objectAtIndex:indexPath.row];
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Do whatever you need to here
}

完整的项目可以在这里下载(我将在接下来的 24 小时内保留它)

于 2012-05-20T19:34:56.367 回答
0

当然有几种方法可以做到这一点。完全不涉及代码的最简单方法之一是使用 Xcode 中的场景构建器。

1 - 将 UITableViewController 添加到使用场景的应用程序 2 - 在此控制器和属性中选择表格视图,将其设置为“静态列表”(我不记得该属性的确切名称 - 我将编辑如果找不到,我的答案是添加它) 3 - 编辑列表中的项目数和每个单元格以具有您想要的标签 4 - 在场景中添加一些 UIController 并在其中添加图像 5 - 链接每个表使用 segue 将单元格移动到匹配的控制器(按住 ctrl 单击并拖动或单击选项) 6 - 单击构建和运行。

就是这样——不是一行代码!

Ps:我现在在我的 iPhone 上,但如果你需要,我可以发布一个完整的例子。对于快速原型来说,这实际上是一个非常酷的技巧。

于 2012-05-19T22:30:35.033 回答