>

4 개의 셀로 collectionview가있는 코드를 작성했으며 스 와이프하여 각 셀을 볼 수 있습니다.

컬렉션 뷰 배경색이 빨간색이고 셀에 이미지를 넣기 전에 (이미지 대신 파란색을 넣기 전에) 셀의 컬렉션 뷰에 작은 빨간 선이 표시되는 문제가 있습니다.

전에는 더 큰 선이 있다는 문제가 있다고 말해야하며 뷰 컨트롤러의 숨겨진 탐색보기로이를 해결합니다.

class CheckViewController: UIViewController, UICollectionViewDataSource,
UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {

    lazy var collectionView: UICollectionView = {
        let layout = UICollectionViewFlowLayout()
        layout.scrollDirection = .horizontal
        layout.minimumLineSpacing = 0
        let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
        cv.backgroundColor = .red
        cv.dataSource = self
        cv.delegate = self
        cv.isPagingEnabled = true
        return cv
    }()

    let cellId = "cellId"
    override func viewDidLoad() {
        super.viewDidLoad()
        self.navigationController?.setNavigationBarHidden(true, animated: true)
        view.addSubview(collectionView)

       // collectionView.frame = view.frame
        //use autolayout instead
        collectionView.anchorToTop(top: view.topAnchor, left: view.leftAnchor, bottom: view.bottomAnchor, right: view.rightAnchor)
        collectionView.register(PageCell.self, forCellWithReuseIdentifier: cellId)

    }

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 4
    }

//    func numberOfSections(in collectionView: UICollectionView) -> Int {
//        return 4
//    }
//
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath)

      //  cell.backgroundColor  = .white
        return cell
    }
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        return CGSize(width: view.frame.width, height: view.frame.height)
    }


}
extension UIView {
    func anchorToTop(top: NSLayoutYAxisAnchor? = nil, left:
        NSLayoutXAxisAnchor? = nil, bottom: NSLayoutYAxisAnchor? = nil, right:
        NSLayoutXAxisAnchor? = nil) {
        anchorWithConstantsToTop(top: top, left: left, bottom: bottom, right: right, topConstant: 0, leftConstant: 0, bottomConstant: 0, rightConstant: 0)
    }
    func anchorWithConstantsToTop(top: NSLayoutYAxisAnchor? = nil, left:
        NSLayoutXAxisAnchor? = nil, bottom: NSLayoutYAxisAnchor? = nil, right:
        NSLayoutXAxisAnchor? = nil, topConstant: CGFloat = 0,leftConstant:
        CGFloat = 0, bottomConstant: CGFloat = 0, rightConstant: CGFloat = 0)
    {
        translatesAutoresizingMaskIntoConstraints = false
        if let top = top {
            topAnchor.constraint(equalTo: top, constant: topConstant).isActive = true
        }
        if let bottom = bottom {
            bottomAnchor.constraint(equalTo: bottom, constant: bottomConstant).isActive = true
        }
        if let left = left {
            leftAnchor.constraint(equalTo: left, constant: leftConstant).isActive = true
        }
        if let right = right {
            rightAnchor.constraint(equalTo: right, constant: rightConstant).isActive = true
        }
    }
}

이것은 이미지 입니다.


  • 답변 # 1

    두 가지 문제가 있습니다

    1) collectionView가 아닌 ​​뷰를 기준으로 셀 크기를 설정하고 있습니다.

    셀 크기 설정 오류 ..

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        return CGSize(width: collectionView.frame.width, height: collectionView.frame.height)
    }
    
    

    2) 뷰의 backgroundImage가 100 %에 맞지 않는 것 같습니다. 다른 종횡비를 사용하여 뷰를 채우려 고합니다. .scaleToFill을 사용하고 싶을 것입니다.

    UIViewContentModeScaleAspectFit와 UIViewContentModeScaleToFill의 차이점?

  • 이전 눈송이는 정규 표현식에서 긍정적 인 모습을 지원합니까?
  • 다음 matlab - 왜 로지스틱 회귀 분석 (멀티 클래스) 정확도가 그렇게 작은가?