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

Eri*_*wan 0 objective-c uitableview ios

有没有办法只显示UITableView中的前10个单元格?我有一个从XML文件填充的UITableView,我只想显示前10个单元格.问题是UITableView在这些部分中有多个部分和行.每个用户的行数和部分数不同.

是否有可能隐藏其余的单元格或者不首先显示它们(例如,通过不在cellForRowAtIndexPath中添加它们),我试图在cellForRowAtIndexPath中有一个计数器,每次调用cellForRowAtIndexPath方法时都为+ 1.我对计数器进行了NSLog,它非常大,直到80,我在UITableView中甚至没有30个单元格.

谢谢!

编辑: 问题是,每次滚动UITableView时,每次滚动经过indexPath(对于同一个indexPath)都会调用cellForRowAtIndexPath,因此计数器无效.

编辑2: 我认为它不起作用,所以我修改了我的XML文件,在文件中有一个计数器,现在我可以检查计数器是否大于10来自xml文件并检查它以修改cellForRowAtIndexPath中的单元格.

TCB*_*B13 5

您可以通过更改返回值来限制"加载"的行数- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
       return 10; 
}
Run Code Online (Sandbox Code Playgroud)

这个- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath只会被称为10次.

关于你的柜台:(你可能做错了)

你有没有宣布它NSInteger *somensint;

NSInteger是一个原始的,而不是一个对象!你真正在做的是增加NSInteger*指向的内存地址.由于NSInteger长度为4个字节,因此每次递增时,编译器都会认为,因为它是一个指针,所以你想要跳到内存中的下一个NSInteger,这就是你得到4的倍数的原因.只需删除*你声明的时间NSInteger和你应该全部搞定.