【发布时间】:2016-09-10 13:48:45
【问题描述】:
我必须创建一个看起来像这样的屏幕。
我已经使用UITableViewController 完成了它。我走这条路而不是使用UIViewController 和UIScrollView 的原因是,中间的表格视图是静态的,只有UITableViewControllers 可以有静态表格视图。反正我现在的结果是这样的。
表格的页眉视图包含顶部的标签,页脚视图包含地图视图。
我创建了一个单独的 UIView 子类,并为两个按钮创建了一个名为 ButtonView 的笔尖。
import UIKit
class ButtonView: UIView {
@IBOutlet var view: UIView!
@IBOutlet weak var declineButton: UIButton!
@IBOutlet weak var acceptButton: UIButton!
override init(frame: CGRect) {
super.init(frame: frame)
NSBundle.mainBundle().loadNibNamed("ButtonView", owner: self, options: nil)
self.bounds = view.bounds
self.addSubview(self.view)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
NSBundle.mainBundle().loadNibNamed("ButtonView", owner: self, options: nil)
self.addSubview(self.view)
}
}
我尝试将它添加到表视图控制器的 view 和 tableView 中,但两次都被添加到滚动视图中。我希望这些按钮固定在底部。所以我将它们添加到window。
class TableViewController: UITableViewController {
var buttonView: ButtonView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 35, right: 0)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
buttonView = ButtonView(frame: CGRect(x: 0, y: view.frame.size.height - 35, width: view.frame.width, height: 35))
UIApplication.sharedApplication().keyWindow!.addSubview(buttonView)
}
}
但正如您从上面的屏幕截图中看到的那样,按钮的宽度是关闭的。他们没有正确调整大小以适应屏幕。我已经在ButtonView 中设置了所有必要的自动布局约束。
如何让它们正确调整大小并适合屏幕?
【问题讨论】:
-
我收到此错误。 错误:非法配置:静态表视图仅在嵌入 UITableViewController 实例时有效。
-
只需使用容器视图将 tableviewcontroller 嵌入到您的标准 ViewController 中
标签: ios swift uitableview uiscrollview footer