Я создаю приложение для iOS и использую представление коллекции с ячейкой представления коллекции. Я уже установил ограничение представления коллекции на основное представление. но, однако, если я запускаю приложение, оно дает другой результат. Даже в версии для iPhone 5 контент перекрывал ширину экрана.
Пожалуйста, посмотрите на снимок экрана ниже
Содержимое представления коллекции перекрывало размер экрана. Пожалуйста, сравните с версией iPhone 7 и 7plus ниже
а это версия для айфона 7p
Я уже пытался установить конкретное ограничение для верхнего, левого, нижнего, правого, но это не дало результата. Это моя раскадровка контроллера представления
Я искал по всему сайту, но нашел только, как установить динамическую высоту, а не ширину. Я хочу установить только динамическую ширину, потому что высота содержимого была постоянной. Может ли кто-нибудь дать мне совет?
Примечание: это код просмотра моей коллекции (может быть, кто-то захочет посмотреть)
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let screenSize: CGRect = UIScreen.main.bounds
return CGSize(width: collectionPromo.bounds.size.width, height: collectionPromo.collectionViewLayout.collectionViewContentSize.height);
}
Я попытался установить динамическую ширину этого кода (нашел в инете)
ПРИМЕЧАНИЕ: это не проблема режима просмотра изображения, потому что тот, который перекрывается, был всем содержимым (включая метку), а не только представлением изображения, это мой код просмотра коллекции
public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellPromo", for: indexPath)
var labelPromo = cell.viewWithTag(3) as! UILabel
labelPromo.text = list[indexPath.row].Period
var imagePromo = cell.viewWithTag(2) as! UIImageView
let promimg = try? UIImage(data: Data(contentsOf: URL(string: list[indexPath.row].ImageUrl)!))
imagePromo.image = promimg!
imagePromo.contentMode = UIViewContentMode.scaleAspectFit
//imagePromo.layer.masksToBounds = true
imagePromo.clipsToBounds = true
cell.layer.masksToBounds = false
cell.layer.borderColor = UIColor.white.cgColor
cell.layer.borderWidth = 5.0
//cell.layer.contentsScale = UIScreen.main.scale
cell.layer.shadowOpacity = 0.25
cell.layer.shadowRadius = 5.0
cell.layer.shadowOffset = CGSize.zero
cell.layer.shadowPath = UIBezierPath(rect: cell.bounds).cgPath
cell.layer.shouldRasterize = true
cell.layer.backgroundColor = UIColor.white.cgColor
return cell
}