尝试在我的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)
}
如果我想使按钮浮动如下图所示,我该怎么做
答案 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
}
}
这是我在创建浮动按钮以滑动到UITableViewConroller
:https://medium.com/@volodymyrrykhva/ios-float-button-to-scroll-down-tableview-ec6a8dd23307