在UITableViewController中调整按钮宽度(Swift - Xcode)

时间:2018-02-14 07:16:16

标签: ios swift xcode uitableview

我想知道如何调整我的UIButton在底部静止,所以即使有很多tableview单元格也可以这么说。按钮仍将保持在底部。

enter image description here

2 个答案:

答案 0 :(得分:0)

实际上,据我所知,有3种方法可以实现这一目标。

1 - >使用UIViewController代替UITableViewController

UIViewController中,您可以添加UITableView,然后根据您的要求在UIButton底部添加UIViewController

2 - >在UINavigationController View

上添加按钮

您可以通过编程方式在UINavigationController's view上添加按钮(如果您使用UINavigationController)。

3 - >在Application Window

上添加按钮

您可以通过编程方式在UIWindow上添加按钮。

For 2nd&第3点

如果您只想使用UITableViewController,这些情况适用。为此,您需要在TableViewController

中以编程方式创建按钮
 let button : UIButton = {
    let button = UIButton(type: .custom)
    button.translatesAutoresizingMaskIntoConstraints = false
    button.setTitle("Redeem", for: .normal)
    button.backgroundColor = .green
    return button
}()

然后在UIWindowUINavigationController's view上添加按钮,如下所示:

如果您想添加按钮UIWindow

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    if let window = UIApplication.shared.keyWindow
    {
        window.addSubview(button)

        button.centerXAnchor.constraint(equalTo: window.centerXAnchor).isActive = true
      let bottomSpaceConstraints = NSLayoutConstraint.constraints(withVisualFormat: "V:[v0(40)]-20-|", options: .init(rawValue: 0), metrics: nil, views: ["v0" : button])
        NSLayoutConstraint.activate(bottomSpaceConstraints)
        button.widthAnchor.constraint(equalToConstant: 100).isActive = true
    }
}
override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    button.removeFromSuperview()
}

如果您想在UINavigationController中添加它。

   override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    if let navigationView = self.navigationController?.view
    {
        navigationView.addSubview(button)
        button.centerXAnchor.constraint(equalTo: navigationView.centerXAnchor).isActive = true
      let bottomSpaceConstraints = NSLayoutConstraint.constraints(withVisualFormat: "V:[v0(40)]-20-|", options: .init(rawValue: 0), metrics: nil, views: ["v0" : button])
        NSLayoutConstraint.activate(bottomSpaceConstraints)
        button.widthAnchor.constraint(equalToConstant: 100).isActive = true
    }
}

<强> 记住 在第二和第二种情况下3,您应该在viewWillDisappear方法中删除该按钮,因为您不希望每个屏幕上都出现该按钮。

在所有情况下,结果都是这样的:

enter image description here

答案 1 :(得分:0)

好的,根据需要在底部打开一个FIXED按钮,按照以下步骤操作:

  1. UIViewController
  2. 上添加Storyboard
  3. UITableView
  4. 上添加UIViewController
  5. 使用固定高度
  6. UIView底部添加UIViewController
  7. UIView添加约束,将其左下角,右下角添加到其超级视图&amp;将UIView.height Constraints设为固定值
  8. Constraints添加到UITableView,向上,左,右添加到其超级视图&amp;底部有UIView
  9. UIButton上添加UIView水平&amp;垂直居中于其超级视图
  10. 供您参考demo project zip也添加了这些步骤