有没有办法只显示 UITableView 中的前 10 个单元格?我有一个从 XML 文件填充的 UITableView,我只想显示前 10 个单元格。问题是 UITableView 在这些部分中有多个部分和行。每个用户的行数和部分数不同。
是否可以隐藏其余的单元格或首先不显示它们(例如,通过不将它们添加到 cellForRowAtIndexPath 中),我尝试在 cellForRowAtIndexPath 中设置一个计数器,每次 cellForRowAtIndexPath 方法是 + 1叫。我对计数器进行了 NSLog,它变得非常大,一直到 80,而我在 UITableView 中甚至没有 30 个单元格。
谢谢!
编辑: 问题是每次滚动 UITableView 时都会调用 cellForRowAtIndexPath 每次滚动经过 indexPath(对于相同的 indexPath),因此计数器无效。
编辑 2: 我认为这行不通,所以我修改了我的 XML 文件以在文件中包含一个计数器,现在我可以检查 xml 文件中的计数器是否大于 10,并检查它以修改 cellForRowAtIndexPath 中的单元格。
最佳答案
您可以通过更改 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
中的返回值来限制“加载”的行数。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 10;
}
这个 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
只会被调用 10 次。
关于您的柜台:(您可能做错了)
您是否将其声明为 NSInteger *somensint;
?
NSInteger 是原始类型,不是对象!您真正在做的是增加 NSInteger* 指向的内存地址。由于 NSInteger 的长度为 4 个字节,因此每次递增它时,编译器都会假设,因为它是一个指针,所以您想跳转到内存中的下一个 NSInteger,这就是为什么您得到 4 的倍数的原因。只需删除 *
当您声明 NSInteger 时,您应该准备就绪。
关于objective-c - 仅显示 UITableView 中的前 10 个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12468486/