有人可以通过示例代码帮助我解决这个问题:我有我的UITableView,我已经设置了所有内容,我希望当你点击一个单元格时它会给你一个图像,我已经有了,有8个图像,因此每个都有8个不同名称的单元格,所以我能做什么呢?例如我的单元格名称,“苹果”,“橙色”,“香蕉”等,所以每个需要一张图片,但是当然,为了,我的意思是香蕉与香蕉等。我知道我很简单,但我没有找到任何这方面的例子,而且我对此非常新,谢谢,XD ......
答案 0 :(得分:3)
您需要的是两个使用文本描述和图像构建的NSArray(这也可以使用一个NSArray
和NSDictionary
和两个键值对完成。在这种情况下,每个字典都有两个键值对(一个用于文本,一个用于图像)。
但为了简单起见,我们将使用两个NSArrays。
这样的事情:
在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
}
可以下载完整的项目HERE(我将在接下来的24小时内将其保留)
答案 1 :(得分:0)
当然有几种方法可以做到这一点。完全不涉及代码的最简单方法之一是使用Xcode中的场景构建器。
1 - 将UITableViewController添加到正在使用场景的应用程序 2 - 选择此控制器中的表视图,并在属性中将其设置为“静态列表”(我不记得此属性的确切名称 - 如果找不到,我将编辑我的答案添加它) 3 - 编辑列表中的项目数,并为每个单元格创建所需的标签 4 - 在场景中添加一些UIController并在里面添加图像 5 - 使用segue将每个表格单元链接到匹配的控制器(按住Ctrl键单击并拖动或单击选项) 6 - 点击构建&跑。
就是这样 - 不是一行代码!
Ps:我现在正在iPhone上,但如果你需要,我可以发一个完整的例子。对于快速原型来说,它实际上是一个非常酷的技巧。