ios - 无法滚动到容器 View 中嵌入的 UITableViewController 的底部单元格

标签 ios swift uicontainerview

我有一个嵌入在容器 View 中的 UITableViewController。原型(prototype)单元格边界大于它所在的容器 View 的边界。当尝试查看最底部表格单元格的下半部分时,我可以向上拖动并查看内容,但在释放时,它会立即弹起回到使该单元格的顶部与容器 View 的顶部对齐。请注意,这只发生在最底部的单元格上。

是否有特定的 Storyboard设置可以让我一直滚动到单元格底部,或者这是否与原型(prototype)单元格/容器 View 的约束有关?

以下是我的容器 View 上的 Storyboard设置:

Container View Settings 1 Container View Settings 2

以下是 TableView 的内容: Table View Settings 1 Table View Settings 2

TableViewController 设置: Table View Controller Settings

至于代码:

我有自定义表格 View 单元格:

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 中实例化并添加 subview 的位置:

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,我所拥有的很多答案都是根据其他堆栈溢出问题改编并拼接到我的项目中的,因此对于任何糟糕的约定,我提前表示歉意!

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

Simulator Screenshot

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

最佳答案

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

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

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

关于ios - 无法滚动到容器 View 中嵌入的 UITableViewController 的底部单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48548301/

相关文章:

ios - 如何在StoryBoard中为UISwitch设置“打开图像”和“关闭图像”?

ios - 用于 iOS 游戏开发的 Html5

swift - UserDefaults 保存字符串 -> 尝试将非属性列表对象(函数)设置为 NSUserDefaults/CFPreferences

ios - 我如何将协调器与 UIITabBarController 一起使用?

iOS - 以编程方式设置 UIContainerView 的嵌入式 UIViewController

ios - 键盘扩展 : Is it possible to inherit features and UI from the stock iOS keyboard?

ios - distanceFromLocation 方法如何工作?

ios - 前景色不适用于属性文本

ios - 在 iOS 中切换 UIViewControllers 不起作用

ios - ViewController 作为 Swift 中 MapView 的叠加层(如 Google map 应用程序用户界面)