不需要的表格单元格显示

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;
 

希望这对某人有所帮助,和平!

【讨论】:

它对我有用,投反对票是不公平的,只要它对某人有帮助,没什么大不了的 :)

以上是关于不需要的表格单元格显示的主要内容,如果未能解决你的问题,请参考以下文章

表格单元格字幕不显示

在excel表格单元格中,小数点后是0,为啥不显示

c#单元格录入时,显示过滤的数据

在 s-s-rS 表格的单元格中突出显示文本的方法

使用显示/减少按钮展开/折叠表格视图单元格

表格视图不显示单元格中的内容