在Swift中滚动具有动态高度的视图

时间:2016-05-29 13:05:23

标签: xcode swift scrollview

我无法理解如何将视图嵌入到具有动态高度的滚动视图中。我之前设法创建了滚动视图,但只有静态高度。例如,Facebook或Instagram等iPhone应用程序如何设法为整个动态高度数据源创建滚动视图。到目前为止,我已经使用故事板来创建滚动视图,但我假设在代码中完成此操作会好得多。

class connectDetailsViewController: UIViewController {
    override func viewDidLoad() {
    super.viewDidLoad()
    //set up variables with data
    fillData()
}
override func viewWillAppear(animated: Bool) {
    let nameTitleString = String(businesses[businessNum]["name"]!)
    nameTitle.text = nameTitleString

    processTimes() // Adds information for the hours of operation, if applicable

    processDetails() //Adds information for the details if possible (a few sentences to a few paragraphs)
}

}

processDetails()和ProcessTimes()将在堆栈视图中编辑内容,如何创建滚动视图以在正确的高度包含这两个堆栈视图?

1 个答案:

答案 0 :(得分:0)

通常,为了提供内容提要,例如Facebook时间线,您可能会使用UITableView,因为它在内部使用数据集上的委托方法来管理单元格和整体contentSize的重用,以确定行数,估计行高等。 tableView实际上使用scrollView来实现它,但它在内部处理它。

在我看来,这将是您最好的方法,在不使用tableView的情况下执行此操作,您需要复制它代表您执行的很多逻辑。

使用scrollView要记住的主要事情是它可以加载大于scrollView的内容,然后管理滚动/平移/缩放以允许您查看更大的内容。

如果你只是想知道如何自己做,你可能需要在scrollview中有一个父容器,然后你会不断添加新视图,每次添加新内容时调整scrollViews contentSize高度