仅为UITableView中的可用CellForRow显示分隔符

KDe*_*kar 12 objective-c uitableview ios ios7 ios9

我正在使用UITableView和自定义单元格.
它工作正常,但问题是UITableView中只有一个或两个单元格.
它也为空单元格提供了分隔符.
是否可以仅为使用我的自定义单元格加载的单元格显示分隔符?

Hem*_*ang 26

您需要添加一个空页脚视图来隐藏表中的空行.

迅速:

在你的 viewDidLoad()

self.tblPeopleList.tableFooterView = UIView.init()
Run Code Online (Sandbox Code Playgroud)

Objective-C的:

最简单的方法:

在你的viewDidLoad方法中,

self.yourTableView.tableFooterView = [[UIView alloc] initWithFrame : CGRectZero];
Run Code Online (Sandbox Code Playgroud)

要么

self.yourTableView.tableFooterView = [UIView new];
Run Code Online (Sandbox Code Playgroud)

要么

如果要自定义页脚视图的外观,可以这样做.

UIView *view = [[UIView alloc] initWithFrame:self.view.bounds];
view.backgroundColor = [UIColor redColor];
self.yourTableView.tableFooterView = view;

//OR add an image in footer
//UIImageView *imageView = [[UIImageView alloc] initWithImage:footerImage.png]
//imageView.frame = table.frame;
//self.yourTableView.tableFooterView = imageView;
Run Code Online (Sandbox Code Playgroud)

其他方式:

实现表的数据源方法,

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    return [UIView new];
}
Run Code Online (Sandbox Code Playgroud)

它是一样的,但是如果表有多个部分,你可以在这里为每个部分添加不同的视图.即使您可以使用此方法设置每个部分的不同高度,- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {...}.

Objective-C答案注:本答案针对iOS7及以上版本进行了测试,对于以前的版本,您需要测试每个案例. Swift答案注意:此答案针对iOS10.3及更高版本进行了测试,对于您要测试每个案例的先前版本.


Ego*_*r T 7

另一种方案:

UIView *v = [[UIView alloc] initWithFrame:CGRectZero];
v.backgroundColor = [UIColor clearColor];
[self.tableView setTableFooterView:v];
Run Code Online (Sandbox Code Playgroud)

这也有效

self.tableView.tableFooterView = [UIView new];
Run Code Online (Sandbox Code Playgroud)