2016-05-29 83 views
0

我无法理解如何将视图嵌入到具有动态高度的滚动视图中。我已经成功创建了滚动视图,但只有静态高度。例如,Facebook应用程序(例如Facebook或Instagram)将如何管理为动态高度数据的整个提要创建滚动视图。到目前为止,我已经使用storyboard来创建滚动视图,但我认为这在代码中完成会好得多。在Swift中使用动态高度滚动视图

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()将编辑堆栈内容看,我怎么可以创建一个滚动视图在正确的高度涵盖这两种堆看法?

回答

0

一般来说,用于提供内容的饲料,如Facebook的时间线,你可能会因为管理小区的重用和内部整体contentSize使用数据集上它的委托方法来确定的行数,预计行使用一个UITableView高度等。 tableView实际上使用了一个scrollView来实现这个功能,但它在内部处理它。

在我看来,这将是你最好的方法,做到这一点,而不使用tableView,你需要复制它代表你执行的逻辑。

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

如果你只是想知道如何做到这一点你自己,你可能会需要在滚动视图父容器,然后你会不断添加新的观点进去,每次调整scrollViews contentSize高度你添加新的内容

+0

我同意@Scriptable。强烈建议使用'UITableView'作为这样的事情,但是如果你计划显示除单元格以外的项目,那么你需要一个动态改变高度的滚动视图。 我回答了一个非常类似的问题,在这里介绍了一个特定的流程:http://stackoverflow.com/a/37367119/6361557 –