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

Ios 调整UITableViewController(Swift-Xcode)中的按钮宽度,ios,swift,xcode,uitableview,Ios,Swift,Xcode,Uitableview,我想知道如何调整我的UIButton,使其固定在底部,即使有很多tableview单元格。按钮仍将保留在底部 事实上,据我所知,有三种方法可以实现这一目标 1->使用UIViewController而不是UITableViewController 在UIViewController中,您可以添加UITableView,然后根据需要在UIViewController底部添加UIButton 2->UINavigationController视图上的添加按钮 如果以编程方式使用UINavigatio

我想知道如何调整我的UIButton,使其固定在底部,即使有很多tableview单元格。按钮仍将保留在底部


事实上,据我所知,有三种方法可以实现这一目标

1->使用UIViewController而不是UITableViewController

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

2->UINavigationController视图上的添加按钮

如果以编程方式使用UINavigationController,则可以在UINavigationController的视图上添加按钮

3->应用程序窗口上的添加按钮

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

第二点和第三点

这些情况适用于仅使用UITableViewController的情况。为此,您需要在TableViewController中以编程方式创建一个按钮

然后在UIWindow或UINavigationController的视图上添加按钮,如下所示:

如果要在窗口中添加按钮

如果要将其添加到UINavigationController中

记得吗 在第二和第三种情况下,您应该删除ViewWillEngase方法中的按钮,因为您不希望该按钮出现在每个屏幕上

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


好的,要根据需要在底部安装固定按钮,请执行以下步骤:

在情节提要上添加UIViewController 在UIViewController上添加UITableView 在UIViewController底部添加具有固定高度的UIView 为UIView的超级视图的底部、左侧、右侧添加约束,并使UIView.height约束成为固定值 使用UIView向UITableView添加顶部、左侧、右侧及其superview和底部的约束 将UIView上的UIButton水平和垂直居中添加到其superview
为了便于参考,还添加了这些步骤

您是否已将情节提要中的约束添加到按钮?呃,否,如何执行?根据需要添加具有固定值的button.width约束,从你的故事板或界面生成器中的xib:试试这个博客在TableViewController3中设置一个视图,并在该视图中设置一个按钮,而不是正确地设置约束。真的很抱歉,兄弟,忘了我的qn,我实际上希望按钮在底部保持静止,即使有很多tableview单元格。好吧,谢谢你的帮助,阿伦。我会试试tmr,然后回复你:好的,非常感谢你的帮助。我会试试tmr,然后回复你:
 let button : UIButton = {
    let button = UIButton(type: .custom)
    button.translatesAutoresizingMaskIntoConstraints = false
    button.setTitle("Redeem", for: .normal)
    button.backgroundColor = .green
    return button
}()
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()
}
   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
    }
}