将活动指示器设置为 CollectionViewCell

sen*_*nty 4 uiactivityindicatorview ios uicollectionview uicollectionviewcell swift

我正在尝试为每个集合视图单元格显示初始加载时间的活动指示器。cellForItemAtIndexPath但是,我尝试将其放入,但由于某种原因,它在单元格上方 20 像素处创建。

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

    let cell = self.collectionView.dequeueReusableCellWithReuseIdentifier("AACollectionViewCell", forIndexPath: indexPath) as! AACollectionViewCell

    let activityView = UIActivityIndicatorView(activityIndicatorStyle: .Gray)

    activityView.center = cell.theImage.center
    // Also tried
    activityView.center = cell.contentView.center

    activityView.startAnimating()

    return cell
}
Run Code Online (Sandbox Code Playgroud)

正确的处理方法是什么?


编辑:我也试过这个,但它没有在任何地方创建 activityIndi​​cator

    let activityView = UIActivityIndicatorView(activityIndicatorStyle: .Gray)
    activityView.center = cell.contentView.center
    cell.contentView.addSubview(activityView)
Run Code Online (Sandbox Code Playgroud)

ozg*_*gur 5

cell.contentView.center为您提供contentView来自其父视图坐标系的框架。你应该做什么:

activityView.center = CGPointMake(cell.contentView.frame.size.width / 2, cell.contentView.frame.size.height / 2)
Run Code Online (Sandbox Code Playgroud)