Swift:在tableview中按下按钮

时间:2015-05-13 16:20:14

标签: ios swift

尝试在我的tableview中添加一个Google Inbox Plus按钮,我设法将该按钮添加到tableview,但未能制作棒(或浮动?)。这是我的代码

override func viewDidLoad() {
  self.createButton
}

func createButton() {
        let button = AddButton()  // AddButton is a custom button class I created
        button.setTitle("", forState: .Normal)
        button.setTitleColor(UIColor.blueColor(), forState: .Normal)
        button.frame = CGRectMake(15, -50, 200, 100)
        self.view.addSubview(button)
}

如果我想使按钮浮动如下图所示,我该怎么做

a button in Google Inbox, the plus button stick to the window

2 个答案:

答案 0 :(得分:1)

使用带有UITableView的UIViewController作为故事板中的子视图,而不是使用UITableViewController,并使用带有tableView IBOutlet的UIViewController子类。这将为您提供更多控制权,并且这不是一个很难做出的改变。

现在您可以将按钮添加到视图控制器的视图插座,而不是将其放在桌面视图上。

另一个更复杂的选择是使用自动布局将按钮的位置连接到包含窗口,而不是连接到表视图。但我认为那会更有效。

答案 1 :(得分:0)

以下是通过代码在UITableViewController右下角添加浮动按钮的代码:

private func createFloatingButton() {
    floatingButton = UIButton(type: .custom)
    floatingButton?.backgroundColor = .clear
    floatingButton?.translatesAutoresizingMaskIntoConstraints = false
    constrainFloatingButtonToWindow()
    floatingButton?.setImage(UIImage(named: "floatButton"), for: .normal)
    floatingButton?.addTarget(self, action: #selector(doThisWhenButtonIsTapped(_:)), for: .touchUpInside)
}

private func constrainFloatingButtonToWindow() {
    DispatchQueue.main.async {
        guard let keyWindow = UIApplication.shared.keyWindow,
            let floatingButton = self.floatingButton else { return }
        keyWindow.addSubview(floatingButton)
        keyWindow.trailingAnchor.constraint(equalTo: floatingButton.trailingAnchor,
                                            constant: Constants.trailingValue).isActive = true
        keyWindow.bottomAnchor.constraint(equalTo: floatingButton.bottomAnchor,
                                          constant: Constants.leadingValue).isActive = true
        floatingButton.widthAnchor.constraint(equalToConstant:
            Constants.buttonWidth).isActive = true
        floatingButton.heightAnchor.constraint(equalToConstant:
            Constants.buttonHeight).isActive = true
    }
}

这是我在创建浮动按钮以滑动到UITableViewConrollerhttps://medium.com/@volodymyrrykhva/ios-float-button-to-scroll-down-tableview-ec6a8dd23307

末尾的“中型”文章中的一部分。