我一直在努力隐藏页脚视图。我的问题是,当我单击按钮时,页脚中有一个按钮部分更新后。
footerView.hidden = YES
我在按钮操作中使用了它,但它不起作用。
我一直在努力隐藏页脚视图。我的问题是,当我单击按钮时,页脚中有一个按钮部分更新后。
footerView.hidden = YES
我在按钮操作中使用了它,但它不起作用。
有四种解决方案。他们是,
解决方案1:
tableView.sectionHeaderHeight = 0.0;
tableView.sectionFooterHeight = 0.0;
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger )section {
return 1.0;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger )section {
return 1.0;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger )section {
return [[UIView alloc] initWithFrame:CGRectZero];
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger )section {
return [[UIView alloc] initWithFrame:CGRectZero];
}
解决方案2:
您可以通过尺寸选项卡下的界面构建器设置页脚/页眉高度。
解决方案3:
设置contentInset属性。
self.tableView.contentInset = UIEdgeInsetsMake(-20, 0, -20, 0);
它用于使顶部和底部接触边缘。
解决方案4:
执行以下操作,根据您的条件设置值。0.0 将不被接受。较低的值应为 1.0。
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger )section {
if(section == 0) {
return 6;
} else {
return 1.0;
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger )section {
return 5.0;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger )section {
return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger )section {
return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
}
这应该这样做
tableView.tableFooterView.hidden = YES;
这可以通过实现委托方法来实现
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return CGFLOAT_MIN;
}
参考@J.Hong 的回答,Swift4版本(iOS 11.3):
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return .leastNonzeroMagnitude
}
与@Tim Newton 的回答相比:
titleForFooterInSection
CGFloat.leastNormalMagnitude
-> .leastNonzeroMagnitude
(更 Swifty IMO)Swift 3.0解决方案还删除了前一个单元格和下一个标题之间的讨厌的 1px 边框。
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return CGFloat.leastNormalMagnitude
}
override func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? {
return nil
}
在 swift4 中:
self.tableView.tableFooterView = nil
不使用自定义视图时,nil
从tableView:titleForFooterInSection:
和0
从tableView:heightForFooterInSection:
.
@property(nonatomic, strong) NSString *footerTitle;
@property(nonatomic, assign) BOOL shouldHideFooter;
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
return self.shouldHideFooter ? nil : self.footerTitle;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return self.shouldHideFooter ? 0 : UITableViewAutomaticDimension;
}
Swift 5 解决方案:(隐藏部分页脚,您可能需要另一块来摆脱表格页脚)
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.0
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView()
}