2016-05-29 3 views
0

У меня возникли проблемы с пониманием того, как встроить мой взгляд в прокрутку с динамической высотой. Мне удалось создать списки прокрутки раньше, но только со статической высотой. Как, например, iPhone-приложение, например Facebook или Instagram, может создать прокрутку для всего потока данных динамической высоты. К этому моменту я использовал раскадровки для создания представлений прокрутки, но я предполагаю, что это сделано в коде намного лучше.Прокрутка с динамической высотой в 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, вы, скорее всего, будете использовать UITableView, поскольку он управляет повторным использованием ячеек и общим контентом контента, используя его методы делегирования в наборе данных, чтобы определить количество строк, оценочную строку высоты и так далее. TableView фактически использует scrollView для достижения этого, но он обрабатывает его внутренне.

На мой взгляд, это был бы ваш лучший подход, чтобы сделать это, не используя tableView, вам нужно будет реплицировать много логики, которые оно выполняет от вашего имени.

Главное, что нужно помнить с помощью scrollView, состоит в том, что он может загружать контент, который больше, чем scrollView, а затем управляет прокруткой/панорамированием/масштабированием, чтобы вы могли просматривать более крупный контент.

Если вы просто хотели бы знать, как сделать это самостоятельно, вы, вероятно, нужен родительский контейнер в Scrollview, а затем вы бы продолжать добавлять новые взгляды на него, регулируя высоту scrollViews contentSize каждый раз, когда вы добавляете новое содержание

+0

Я согласен с @Scriptable. Настоятельно рекомендуется использовать 'UITableView' для такой вещи, но если вы планируете отображать элементы, отличные от ячеек, вам потребуется прокрутка, которая динамически изменяет высоту. Я ответил на очень похожий вопрос с конкретным процессом для этого: http://stackoverflow.com/a/37367119/6361557 –