为了账号安全,请及时绑定邮箱和手机立即绑定

如何将按钮放在UITableView上,它不会在iOS中滚动表格

如何将按钮放在UITableView上,它不会在iOS中滚动表格

iOS
慕村225694 2019-09-20 16:10:52
我想把按钮放在UITableView屏幕的同一位置,不会滚动UITableView。当我尝试addSubview按钮时,它们会显示但滚动显示UITableView。放置按钮的原因UITableView是让用户对其进行操作。我不是在谈论在单元格中使用按钮。它们是浮动按钮,从不移动它们的位置。我正在使用UITableViewController,我不想为此目的使用页眉或页脚。另外一些酒吧(UIToolbar例如)对我来说不是一个选择。提前致谢。
查看完整描述

3 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

对此的一个解决方案是延伸UIViewController而不是UITableViewController。您需要添加自己的表视图并设置所有内容。然后,您可以将按钮添加到视图控制器的视图而不是表视图。


查看完整回答
反对 回复 2019-09-20
?
杨魅力

TA贡献1811条经验 获得超6个赞

你也可以这样做UITableViewController(不需要普通的UIViewController,它可以嵌套你的桌子或VC)


使用SafeAreas更新iOS11 +

您想使用autolayout将视图保持在底部


{

    [self.view addSubview:self.bottomView];

    [self.bottomView setTranslatesAutoresizingMaskIntoConstraints:NO];

    UILayoutGuide * safe = self.view.safeAreaLayoutGuide;

    [NSLayoutConstraint activateConstraints:@[[safe.trailingAnchor constraintEqualToAnchor:self.bottomView.trailingAnchor],

                                              [safe.bottomAnchor constraintEqualToAnchor:self.bottomView.bottomAnchor],

                                              [safe.leadingAnchor constraintEqualToAnchor:self.bottomView.leadingAnchor]]];

    [self.view layoutIfNeeded];

}

并确保视图始终位于顶部


- (void)viewDidLayoutSubviews {


    [super viewDidLayoutSubviews];


    [self.view bringSubviewToFront:self.bottomView];


}

以前的旧解决方案

通过滚动表格,您需要调整“浮动”视图的位置,它会很好


如果您在UITableViewController中,只需


如果要将视图浮动在UITableView的顶部


- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

    CGRect frame = self.floatingView.frame;

    frame.origin.y = scrollView.contentOffset.y;

    self.floatingView.frame = frame;


    [self.view bringSubviewToFront:self.floatingView];

}

如果你想浮动UITableView底部的视图


- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

    CGRect frame = self.floatingView.frame;

    frame.origin.y = scrollView.contentOffset.y + self.tableView.frame.size.height - self.floatingView.frame.size.height;

    self.floatingView.frame = frame;


    [self.view bringSubviewToFront:self.floatingView];

}

我相信这是你问题的真正答案


查看完整回答
反对 回复 2019-09-20
  • 3 回答
  • 0 关注
  • 567 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信