Ios 为什么UICollectionView中的单元格被切断?

Ios 为什么UICollectionView中的单元格被切断?,ios,swift,interface-builder,Ios,Swift,Interface Builder,出于某种奇怪的原因,我的UICollectionView中的第一个单元格被切断了。我使用Interface Builder中的原型单元设计了一个单元。我设置了一个自定义高度和约束条件,但是,在运行应用程序时,单元格被切断。请参见以下图片以了解说明: 应该是这样的: 这是我运行应用程序时的外观: 这是集合视图所在的类背后的代码: override func viewDidLoad() { super.viewDidLoad() // set the navigation ti

出于某种奇怪的原因,我的UICollectionView中的第一个单元格被切断了。我使用Interface Builder中的原型单元设计了一个单元。我设置了一个自定义高度和约束条件,但是,在运行应用程序时,单元格被切断。请参见以下图片以了解说明:

应该是这样的:

这是我运行应用程序时的外观:

这是集合视图所在的类背后的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    // set the navigation title
    self.navBar.titleTextAttributes = [NSAttributedStringKey.font: UIFont(name: "Trueno", size: 17)!]
    self.navBar.topItem?.title = user.username

}

@IBAction func handleSettings(_ sender: Any) {

    let action = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)


    let settings = UIAlertAction(title: "Settings", style: .default) { action -> Void in
        self.show(ViewController: "SettingScene")
    }
    let editProfile = UIAlertAction(title: "Edit Profile", style: .default) { action -> Void in
        self.show(ViewController: "SettingScene")
    }
    let cancel = UIAlertAction(title: "Cancel", style: .cancel) { action -> Void in}

    action.addAction(editProfile)
    editProfile.setValue(UIColor.purple, forKey: "titleTextColor")
    action.addAction(settings)
    settings.setValue(UIColor.purple, forKey: "titleTextColor")
    action.addAction(cancel)
    cancel.setValue(UIColor.purple, forKey: "titleTextColor")

    present(action, animated: true, completion: nil)
}

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return user.posts.count + 1
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    var cell: UICollectionViewCell

    // add the profile header/info cell if there are no cells inside of the colelction view
    if collectionView.visibleCells.count == 0 {
        let c = collectionView.dequeueReusableCell(withReuseIdentifier: "ProfileInfoCollectionViewCell", for: indexPath) as! ProfileInfoCollectionViewCell

        c.profilePic.layer.cornerRadius = c.profilePic.frame.width / 2
        c.profilePic.image = user.profilePic
        c.profilePic.clipsToBounds = true

        c.name.text = user.name
        c.bio.text = user.bio
        c.followerCount.text = String(user.followers.count)
        c.followingCount.text = String(user.following.count)
        c.memeCount.text = String(user.postCount)

        cell = c
    } else {
        let c = collectionView.dequeueReusableCell(withReuseIdentifier: "ProfilePostCollectionViewCell", for: indexPath) as! ProfilePostCollectionViewCell
        c.imageView.image = user.posts[indexPath.row - 1].img
        cell = c
    }

    return cell

}

如果您能帮助解决此问题,我们将不胜感激。谢谢

您可以调用
sizeFormiteIndeXPath
delegate方法来设置单元格的大小

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    // Set the size for cell
}

您可以调用
sizeFormiteIndeXPath
delegate方法来设置单元格的大小

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    // Set the size for cell
}

在应用程序中添加一些代码question@DivyaThakkar好的,我做了,但我不认为这会有多大帮助。@DivyaThakkar这是一个UICollectionView,不是表视图。请在question@DivyaThakkar好的,我做了,但我不认为这会有多大帮助。@DivyaThakkar这是一个UICollectionView,不是表视图。