在Swift中使用动态高度滚动视图
问题描述:
我无法理解如何将视图嵌入到具有动态高度的滚动视图中。我已经成功创建了滚动视图,但只有静态高度。例如,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()将编辑堆栈内容看,我怎么可以创建一个滚动视图在正确的高度涵盖这两种堆看法?
答
一般来说,用于提供内容的饲料,如Facebook的时间线,你可能会因为管理小区的重用和内部整体contentSize使用数据集上它的委托方法来确定的行数,预计行使用一个UITableView高度等。 tableView实际上使用了一个scrollView来实现这个功能,但它在内部处理它。
在我看来,这将是你最好的方法,做到这一点,而不使用tableView,你需要复制它代表你执行的逻辑。
使用scrollView记住的主要问题是它可以加载比scrollView大的内容,然后管理滚动/平移/缩放以允许您查看较大的内容。
如果你只是想知道如何做到这一点你自己,你可能会需要在滚动视图父容器,然后你会不断添加新的观点进去,每次调整scrollViews contentSize高度你添加新的内容
我同意@Scriptable。强烈建议使用'UITableView'作为这样的事情,但是如果你计划显示除单元格以外的项目,那么你需要一个动态改变高度的滚动视图。 我回答了一个非常类似的问题,在这里介绍了一个特定的流程:http://stackoverflow.com/a/37367119/6361557 –