在UITableView中隐藏页脚视图

时间:2012-07-12 05:08:16

标签: iphone uitableview ios5 footer

我一直致力于隐藏页脚视图。我的问题是,当我单击按钮时,我在页脚中有一个按钮,下面将添加一个部分作为最后一部分,按钮也将转移到新创建的部分,现在我想在表格的上一部分中隐藏页脚更新部分后。

footerView.hidden = YES

我在按钮操作中使用了它,但它无效。

8 个答案:

答案 0 :(得分:40)

有四种解决方案。他们是,

解决方案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)];
}

答案 1 :(得分:15)

这应该这样做

tableView.tableFooterView.hidden = YES;

答案 2 :(得分:8)

这可以做到 通过实现委托方法

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
  return CGFLOAT_MIN;
}

答案 3 :(得分:2)

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
}

答案 4 :(得分:2)

参考@ J.Hong回答, Swift4 版本(iOS 11.3):

// post processing starts here

composer = new THREE.EffectComposer( renderer );

// render pass

var renderPass = new THREE.RenderPass( scene, camera )

// save pass

var renderTargetParameters = {
    minFilter: THREE.LinearFilter,
    magFilter: THREE.LinearFilter,
    stencilBuffer: false
};

var savePass = new THREE.SavePass( new THREE.WebGLRenderTarget( window.innerWidth, window.innerHeight, renderTargetParameters ) );

// blend pass

var blendPass = new THREE.ShaderPass( THREE.BlendShader, 'tDiffuse1' );
blendPass.uniforms[ 'tDiffuse2' ].value = savePass.renderTarget.texture;
blendPass.uniforms[ 'mixRatio' ].value = 0.65;

// output pass

var outputPass = new THREE.ShaderPass( THREE.CopyShader );
outputPass.renderToScreen = true;

// setup pass chain

composer.addPass( renderPass );
composer.addPass( blendPass );
composer.addPass( savePass );
composer.addPass( outputPass );

与@Tim Newton回答:

  • 无需致电func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { return .leastNonzeroMagnitude }
  • 简化titleForFooterInSection - > CGFloat.leastNormalMagnitude(更多Swifty IMO)

答案 5 :(得分:1)

迅速4:

self.tableView.tableFooterView = nil

答案 6 :(得分:0)

不使用自定义视图时,请从setParameter("foo", value);返回nil,从tableView:titleForFooterInSection:返回0

tableView:heightForFooterInSection:
@property(nonatomic, strong) NSString *footerTitle;
@property(nonatomic, assign) BOOL shouldHideFooter;

答案 7 :(得分:0)

Swift 5解决方案:(隐藏部分页脚,您可能需要另外一块来摆脱表格页脚)

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return 0.0
}

func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
    return UIView()
}