在swift 4中的uitableview上插入一个浮动操作按钮

我正在尝试添加浮动操作按钮(不是浮动菜单按钮),只需单击一下即可将我导航到下一个视图控制器。 我没有正确的浮动按钮。 我尝试了下面的代码,并没有在表视图上显示相应的按钮,因为它与表一起滚动。 有没有办法将按钮固定在同一个地方,而不是沿着桌子滚动?

func floatingButton(){ let btn = UIButton(type: .custom) btn.frame = CGRect(x: 285, y: 485, width: 100, height: 100) btn.setTitle("All Defects", for: .normal) btn.backgroundColor = #colorLiteral(red: 0.1764705926, green: 0.4980392158, blue: 0.7568627596, alpha: 1) btn.clipsToBounds = true btn.layer.cornerRadius = 50 btn.layer.borderColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1) btn.layer.borderWidth = 3.0 btn.addTarget(self,action: #selector(DestinationVC.buttonTapped), for: UIControlEvent.touchUpInside) view.addSubview(btn) } 

附表视图截图

如果你当前使用tableViewController然后没有,你必须子类UIViewController添加UItableView和你的浮动按钮到它

或者您可以覆盖scollviewDidScroll并根据tableview当前偏移更改按钮y

将scrollview拖动为IBOutlet并将其委托设置为viewController

  func scrollViewDidScroll(_ scrollView: UIScrollView) { let off = self.areaSettTable.contentOffset.y btn.frame = CGRect(x: 285, y: off + 485, width: btn.frame.size.width, height: btn.frame.size.height) } 

代码快照

在此处输入图像描述

在行动

在此处输入图像描述 看到行动

添加到UITableView所有子视图都将自动滚动。

您可以做的是将按钮添加到应用程序窗口 ,只需记住在ViewController消失时将其删除。

 var btn = UIButton(type: .custom) func floatingButton(){ btn.frame = CGRect(x: 285, y: 485, width: 100, height: 100) btn.setTitle("All Defects", for: .normal) btn.backgroundColor = #colorLiteral(red: 0.1764705926, green: 0.4980392158, blue: 0.7568627596, alpha: 1) btn.clipsToBounds = true btn.layer.cornerRadius = 50 btn.layer.borderColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1) btn.layer.borderWidth = 3.0 btn.addTarget(self,action: #selector(DestinationVC.buttonTapped), for: UIControlEvent.touchUpInside) if let window = UIApplication.shared.keyWindow { window.addSubview(btn) } } 

并在viewWillDisappear

 override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) btn.removeFromSuperview() }