无法滚动到嵌入在容器视图中的 UITableViewController 的底部单元格



我在容器视图中嵌入了一个UITableViewController。原型单元格边界大于它所在的容器视图的边界。当尝试查看最底部表格单元格的下半部分时,我可以向上拖动并拉动并查看内容,但在释放时,它会立即反弹回该单元格的顶部与容器视图的顶部对齐。请注意,这仅适用于最底部的单元格。

是否有特定的情节提要设置允许我一直滚动到单元格的底部,或者这与原型单元格/容器视图的约束有关?

以下是我的容器视图上的情节提要设置:

容器视图设置 1 容器视图设置 2

以下是表格视图的那些: 表视图设置 1 表视图设置 2

表视图控制器设置: 表视图控制器设置

至于代码:

我有我的自定义表视图单元格:

class MakerItemTableViewCell: UITableViewCell {
@IBOutlet weak var itemImage: UIImageView!
@IBOutlet weak var itemTitle: UILabel!
@IBOutlet weak var itemDescription: UILabel!

override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}

以下是我在 MainViewController 中实例化和添加子视图的地方:

private lazy var itemsViewController: MakerItemsTableViewController = {
// Load Storyboard
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
// Instantiate View Controller
var viewController = storyboard.instantiateViewController(withIdentifier: "MakerItemsTableViewController") as! MakerItemsTableViewController
// Add View Controller as Child View Controller
self.add(asChildViewController: viewController)
return viewController
}()

private func add(asChildViewController viewController: UIViewController) {
// Add Child View Controller
addChildViewController(viewController)
// Add Child View as Subview
childView.addSubview(viewController.view)
// Configure Child View
viewController.view.frame = view.bounds
viewController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
// Notify Child View Controller
viewController.didMove(toParentViewController: self)
}

几周前我开始学习 Swift,我得到的很多答案都是从其他堆栈溢出问题改编而来并拼接到我的项目中的,所以我提前为任何糟糕的约定道歉!

在下面的屏幕截图中,图像的顶部是表格单元格的顶部。顶部的条形图底部与容器视图的上限相交。如果我向下单击图像并向上拉,我可以看到它下面的信息是同一单元格的一部分,同时图像消失在顶部的栏下方。这正如我所期望的那样。单元格中较低的信息将填充容器视图区域。但是,一旦我松开单击,图像就会自行拉回,并且图像的顶部(即表格单元格的顶部)再次与容器视图的顶部对齐。

模拟器截图

更新:问题似乎与充当容器视图的 UIView 的约束有关。我还没有找到完整的解决方案,但已将其缩小到这个问题。

您在此处提到的代码没有任何问题。

您面临的问题是因为无法确定表视图高度。请尝试调整它(增加或减少)或检查其自上而下的前导尾随约束。

希望它能帮助您解决问题。 :)

我必须做一些事情才能让它工作。有一个选项卡栏是从源控制器继承的,因此嵌入在目标控制器的容器视图中的表视图控制器看不到它。我不得不取消选中"在底栏下扩展边缘",并在"模拟指标"选项卡下,将"底部栏"更改为"半透明标签栏",以便表格视图有一个不延伸的占位符。

最新更新