不需要的表格单元格显示
Posted
技术标签:
【中文标题】不需要的表格单元格显示【英文标题】:Unwanted Tablecells showing 【发布时间】:2012-11-15 04:33:20 【问题描述】:我正在尝试删除这些我没有使用但不知道如何删除的表格单元。我已经指定了我想要多少个单元格,但是这些不需要的单元格一直显示,就像这样;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
return 3;
有人知道如何解决这个问题吗?提前致谢
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
if ([self numberOfSectionsInTableView:tableView] == (section+1))
return [UIView new];
return nil;
但无济于事,因为我收到一个 sigabrt 错误..这是为什么?
【问题讨论】:
Eliminate Extra separators below UITableView - in iphone sdk?的可能重复 感谢 jrturton,确实是同一个问题,感谢您指出这一点。我试过这段代码'- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section if ([self numberOfSectionsInTableView:tableView] == (section+1)) return [UIView new]; 返回零;' 【参考方案1】:我个人使用:
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
return 0.1;
而不是viewForFooterInSection:
。
【讨论】:
感谢您的输入,但我用我的答案更新了问题,尝试一下,让我知道您的想法,这似乎是最干净的方法。 @rdurand 你为什么发布接受你自己的答案?你刚刚完全接受了我说的话!如果它解决了您的问题,您应该删除您的答案并接受我的答案。您只是在创建相同答案的副本,并且会因此而被否决。 我的回答对我有用,这就是我投票支持它的原因,我相信你的回答可能也会这样做,因此我投票支持它。它不是重复的,因为它的答案略有不同,我看不出有什么大不了的,因为有不同的方式来执行被投票的方法,它们会对人们派上用场,所以我不知道为什么我被否决了.我就是来学习的,呵呵 我看不出我的回答与您发布的内容有什么不同。顺便说一句,我不是投票给你的人;)【参考方案2】:试试这个
- (void) addFooter
UIView *v = [[UIView alloc] initWithFrame:CGRectZero];
[self.myTableView setTableFooterView:v];
[v release];
您可以尝试不同的选项
Eliminate extra separators below UITableView
【讨论】:
感谢您的输入,但我用我的答案更新了问题,尝试一下,让我知道您的想法,这似乎是最干净的方法。【参考方案3】:您有两种选择。
-
将 tableView 样式设置为
Grouped
(UITableViewStyleGrouped
)
从heightForRowAtIndexPath:
方法返回像tableViewHeight/number of cells
这样的单元格高度:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
int tableViewHeght = 720;
return tableViewHeght * 3;
【讨论】:
感谢您的输入,但我用我的答案更新了问题,尝试一下,让我知道您的想法,这似乎是最干净的方法。【参考方案4】:你也可以这样做
1.创建一个一对一的 UITableCell 类并将该类附加到 UITableView。 2.你的UITableView属性改变BackGroundColour是ClearColour
然后你可以运行并显示
您也可以使用背景图片作为参考
【讨论】:
感谢您的输入,但我用我的答案更新了问题,尝试一下,让我知道您的想法,这似乎是最干净的方法。【参考方案5】:我已经看到有关使用页眉/页脚或尝试使用分组表视图的答案,一切似乎都很好,而且解决方案也更简洁。但我宁愿选择另一个。将您的表格视图分隔符样式指定为无。在你的 cellForRowAtIndexPath 方法中声明一个 UIImageView 实例。制作一个高1px,宽320px的图像,将其设置为image view的图像,并将其添加为cell的子视图,y位置为cell的高度。请记住自动释放图像视图实例。由于已完成自动发布,因此不会有任何内存问题,并且您可以决定必须在哪些单元格中显示它,从而使其更加灵活。
【讨论】:
【参考方案6】:我能够通过在我的代码中添加这个来解决这个问题;
- (float)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
// This will create a "invisible" footer
return 0.01f;
希望这对某人有所帮助,和平!
【讨论】:
它对我有用,投反对票是不公平的,只要它对某人有帮助,没什么大不了的 :)以上是关于不需要的表格单元格显示的主要内容,如果未能解决你的问题,请参考以下文章