我对iOS有些新手,但我在Android方面经验丰富。
我有一个我正在处理的应用,它需要使用您的"历史记录"填充页面。您与之交往过的人,并显示他们的图片,姓名,评级和其他一些信息。
这需要填入垂直列表,也许是表格?见下图...
现在,在android中,我会创建一个自定义类,其布局包含图片,名称,信息,评级以及不在一个xml文件中的内容,以及我将在for循环中调用该类的活动,抓取所有用户,然后以编程方式将一个接一个地添加每个视图,使用他们自己的唯一用户信息,直到没有更多的用户填充。
我在iOS和xcode中如何做到这一点?我是否需要创建一个XIB并在其中添加图片,名称,评级和信息占位符,并为它创建一个自定义类,我将用于在for循环中运行?我对iOS如何做到这一点有点困惑。
非常感谢任何帮助,我可以提供任何其他信息!谢谢:))
答案 0 :(得分:0)
从Android切换到iOS时,您要做的第一件事就是学习术语。然后你就会知道在Google,SO等上搜索什么。
您要做的是创建一个UITableView。
这是一个指向超级基本“操作方法”的链接,可以帮助您开始使用tableviews。 http://www.appcoda.com/uitableview-tutorial-storyboard-xcode5/
一旦你掌握了基础知识,你就会更进一步学习如何在你的tableview中自定义UITableViewCell,这样你就可以完成你在问题中详述的外观。 http://www.appcoda.com/customize-table-view-cells-for-uitableview/
我不确定我现在可以提供帮助了。跳进去,学习桌面视图,并开始在操作系统上搜索,以回答你将长期拥有的其他数百万个问题。
祝你好运!答案 1 :(得分:0)
在iOS中,您可能希望使用UITableView
,每行都是UITableViewCell
的自定义子类。您可以在单独的XIB中为这些单元格创建布局,也可以放置整个批次,tableView和" prototype" storyboard
中的单元格。你甚至可以在没有子类化的情况下实现很多目标,因此在XCode中启动一个虚拟项目并进行游戏(使用Apple的一个模板为你提供了一个良好的开端)。享受。
答案 2 :(得分:0)
您可能想要的是使用UITableView。
你自己不做for-loop。您所做的是实现表视图调用的一组委托方法。
您可以在XIB或Storyboard中创建原型单元格。将表视图添加到布局时,可以向该表视图添加一个单元格,该单元格将成为您的原型。看起来您只需要一个原型单元,但您可以根据需要创建多个原型单元。在Interface Builder中,您为原型单元格提供了一个“重用标识符”,它只是用于在代码中引用原型的任意标记。你的原型单元可以是你自己的UITableViewCell的子类,或者如果你不需要任何自定义代码,你可以使用UITableViewCell。
然后您实现了几个委托方法。一个是在表视图中设置节数的位置;看起来你只会在节上。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tv
{
return 1;
}
然后告诉它表视图中有多少项。假设您有要在数组中显示的对象,只需返回数组的长度。
- (NSInteger)tableView:(UITableView *)tv numberOfRowsInSection:(NSInteger)section
{
return self.objects.count;
}
然后,对于数组中的每个项目,将调用cellForRowAtIndexPath。使该方法返回实际的单元格。您可以使用在Interface Builder中指定的重用标识符调用dequeueReusableCellWithIdentifier来检索原型单元格。然后使用相应的对象在单元格中设置UI元素。
- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)i
{
UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:i];
Thingy *item = self.objects[i.row];
cell.textLabel.text = item.name;
return cell;
}
这应该足以让您开始使用文档,现在您已经了解了需要实现的内容。