objective-c - 仅显示 UITableView 中的前 10 个单元格

标签 objective-c ios uitableview

有没有办法只显示 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/

相关文章:

ios - 向 UITableView 添加滑动手势

iphone - UITableViewController 没有更新内容是我应用手动排序

objective-c - 我如何配置 CocoaPods 以使用 https ://github. com/RestKit/cocoa-oauth 而不是过时的?

ios - 一些 Restkit 方法不可用

android - 相应的错误:未定义对“OBJC_CLASS _ $ _ FBSession”的引用

ios - 网站未在 UIWebView 中加载

ios - 如何显示内购项目的描述?

ios - 我可以将返回的 CLLocationDistance 添加到 NSMutableArray 中吗?

iphone - XCode (iOS) 中委托(delegate)的自动导入回调

iphone - 获取 UITableViewCell 的 subview (UITextField 或 UILabel)——两种方式,一种有效,一种无效——为什么?