情况:
我将UITableViewController
与在Storyboard中设计的静态表格单元格一起使用。在我的第一个UITableViewCell
中,我实现了一个不错的UICollectionView
。
但是有一个问题:当我滚动它们时UICollectionViewCell
移出框架。他们应该只在正确的位置停止。
代码:
import UIKit
class HomeTableViewController: UITableViewController, UICollectionViewDelegate, UICollectionViewDataSource {
@IBOutlet weak var topSliderCollectionView: UICollectionView!
var topSliderElement = [TopSliderElement]()
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return topSliderElement.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "slider cell", for: indexPath) as! HomeSliderCollectionViewCell
let slider = topSliderElement[indexPath.row]
cell.titleLbl.text = slider.tile
cell.descriptionLBL.text = slider.description
return cell
}
}
我试过这个:
这是一种可能的解决方案,但它不起作用,因为我没有使用普通的UIViewController
。
问题:如何控制单元格以使它们停在视图中的正确位置?
答案 0 :(得分:2)
您必须将单元格宽度设置为与view.frame.width
相同才能使其正常工作。如果单元格的两侧有任何间距(您可以这样做),则必须将它们一起添加,然后从宽度中减去。即,view.frame.width - 16
。完成此操作后,您必须在isPagingEnabled
中将UICollecitonView
设置为true - 当您停止滚动时,这会将单元格锁定在屏幕中心。