Размер кадра UIView не обновляется в UITableViewCell (с использованием ограничений) - PullRequest
0 голосов
/ 29 декабря 2018

Таким образом, я выравниваю свой collectionView внутри UITableViewCell, однако, как только я запускаю приложение, оно отображает ширину моей раскадровки UITableViewCell, а не само приложение iPad (которое меняется, как только я начинаю прокручивать).Вот мой текущий код

collectionView.frame.origin.x = collectionView.superview!.frame.width;
print(collectionView.superview!.frame.width)

Приложение печатает это, оно начинает печатать 728, как только я начинаю прокручивать.

335.0
335.0
335.0
335.0
335.0
728.0
728.0
728.0

Итак, мой вопрос, почему это происходит, и как можноЯ всегда получаю ширину 728 при выравнивании моего collectionView?

Вот некоторые изображения, которые помогут (синий фон collectionView , красный фон collectionView.superview

Изображение моего раскадровки

Изображение моего приложения после его запуска

Изображение моего приложенияпосле прокрутки вниз

1 Ответ

0 голосов
/ 29 декабря 2018

Сначала, когда вы запускаете

print(collectionView.superview!.frame.width)

, он печатает раскадрованную высоту, инкапсулированную = 335, которая является шириной iphone, с которой вы разработали макет, чтобы получить доступ к нужной ширине в виртуальном канале

override func viewDidLayoutSubviews()
 super.viewDidLayoutSubviews()
  // print here
}

или внутри клетки

override func layoutSubviews()
 super.layoutSubviews()
  // print here
}
...