有没有办法只显示UITableView中的前10个单元格?我有一个从XML文件填充的UITableView,我只想显示前10个单元格。问题是UITableView在这些部分中有多个部分和行。每个用户的行数和部分数不同。
是否有可能隐藏其余的单元格或者不首先显示它们(例如,通过不在cellForRowAtIndexPath中添加它们),我试图在cellForRowAtIndexPath中有一个计数器,每次cellForRowAtIndexPath方法是+ 1调用。我对计数器进行了NSLog,它非常大,直到80,我在UITableView中甚至没有30个单元格。
谢谢!
修改 问题是,每次滚动UITableView时,每次滚动经过indexPath(对于同一个indexPath)都会调用cellForRowAtIndexPath,因此计数器无效。
编辑2: 我认为它不起作用,所以我修改我的XML文件在文件中有一个计数器,现在我可以检查计数器是否大于10来自xml文件并检查它以修改cellForRowAtIndexPath中的单元格。
答案 0 :(得分:5)
您可以通过更改- (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的倍数的原因。只需删除{{1}当你声明NSInteger并且你应该全部设置时。
答案 1 :(得分:1)
这是您要实施的两种方法。这样您就可以限制tableview中的节和行数,而无需操作xml数据。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section