Scrollview не работает, когда я продолжаю добавлять метки в представление - PullRequest
1 голос
/ 10 октября 2019

У меня есть это приложение Swift 4, и у меня есть контроллер вида, который выглядит следующим образом

View
    Safe Area
    Scroll View
        Stack View
            Label
            View
            Contacts View
            View
                Button1
            View
                Button2
    Bottom View

Мне дан массив контактов, и я хочу создать метку для каждого контакта и добавить егона Contacts View.

 var labelY = 48

 for con in contacts {

        let aux = try self.contactStore.unifiedContact(withIdentifier: con, keysToFetch: [CNContactGivenNameKey, CNContactFamilyNameKey] as [CNKeyDescriptor])

        let label = UILabel(frame: CGRect(x: 24, y: labelY, width: 200, height: 21))
        label.textAlignment = .center
        label.text = "\(aux.givenName) \(aux.familyName)"
        contactsView.addSubview(label)

        labelY = labelY + 24

 }

У меня проблема в том, что когда у меня много контактов, они обрезаются через 5 часов, и я не могу прокрутить.

Почему это?

1 Ответ

0 голосов
/ 10 октября 2019

Самое логичное, что нужно сделать:

  • добавить представление вертикального стека как подпредставление вашего Contacts View
  • , ограничив его всеми 4 сторонами Contacts View,используя сколько угодно «отступов»
  • , затем добавьте каждую метку как упорядоченное подпредставление этого стекового представления

Это приведет к вертикальному росту Contacts View с каждой добавленной меткой.

Обратите внимание, что вам не нужно устанавливать рамки для этих меток:

for con in contacts {

    let aux = try self.contactStore.unifiedContact(withIdentifier: con, keysToFetch: [CNContactGivenNameKey, CNContactFamilyNameKey] as [CNKeyDescriptor])

    let label = UILabel()
    label.textAlignment = .center
    label.text = "\(aux.givenName) \(aux.familyName)"
    contactsViewStackView.addArrangedSubview(label)

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...