添加一个在Swift中使用UITableView滚动的按钮

时间:2017-08-09 05:24:12

标签: ios swift uitableview swift3 uiscrollview

我正在尝试将UIButton(或可点击的UIView)显示在UITableView上方。这很容易。当用户向下滚动表视图时,困难的部分是滚动它。

我尝试过像这样使用UIScrollView:

private var scroll = UIScrollView();
private var table = UITableView();

override func viewDidLoad()
{
    super.viewDidLoad()

    scroll = UIScrollView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height));

    table = UITableView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height));
    table.register(ATableCell.self, forCellReuseIdentifier: "reuseIdentifier");
    table.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0);
    table.backgroundColor = UIColor.clear;
    table.separatorInset = .zero;
    table.layoutMargins = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 10);

    table.rowHeight = UITableViewAutomaticDimension;
    // table.estimatedRowHeight = 100;

    table.dataSource = self;
    table.delegate = self;

    scroll.addSubview(table);

    self.view.addSubview(table);

}

顶部的滚动条空间可以按住按钮,但始终会在那里。我希望它保持在桌面视图之上但在用户向下滚动时失焦(如网页或类似iphone中的标准邮件应用程序,使用搜索栏和表格视图执行此操作)。感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用委托方法检测UITableView的滚动,您可以在其中设置UIButton的位置,以便它可以根据您的UITableView滚动进行移动。

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
if (scrollView == myTableView){
   // Your code here.....
}
}

答案 1 :(得分:0)

您可以使用以下两种方法在桌面视图上方添加按钮:

<强> 1。部分标题:

在tableview的最顶部添加部分标题。不要忘记将UITableViewStyle更改为plain,否则章节标题将位于顶部。

<强> 2。表标题视图:

添加tableHeaderView并在此处放置您想要的任何内容。滚动桌面视图时会滚动。

希望它有所帮助。