为什么在点击时UICollectionViewCell上的文本消失?

时间:2019-06-13 23:00:25

标签: ios swift uicollectionview uicollectionviewcell

我有一个UICollectionView。它充满了包括图像视图和标签的单元格。

在一个单元格上点击时,文本将消失。 如何阻止这种情况发生?

其他信息:

收集视图位于连接到baseVC的容器中。

单元格及其大多数内容被添加到其xib文件中。一切都正确显示。希望在点击时会消失,然后消失,然后重新出现。

还要注意,标签不会消失,只会消失。

在调用单元格func setup(profImage: String, contentView: String, titleLabel: String, subtitleLabel: String)时会添加自定义文本,即使在禁用添加文本时,默认标签也仍然会在点击时消失。

4 个答案:

答案 0 :(得分:2)

我将确保将标签添加到单元格的contentView上,而不仅仅是该单元格的“最顶部”视图。也许xib的设置方式不正确。确保在xib等文件中是UICollectionViewCell。您还可以张贴有关如何设置xib的图片。

此外,要进行调试,我将删除所有处理不围绕标签旋转的单元格的代码(例如,删除动画,直到修复错误为止)。这将使您可以对问题进行分区。或者,以另一种方式,只是从头开始并重新创建单元(仅带有标签)。展示标签并不是火箭科学,但是如果您不逐步开发,则可以使其成为火箭科学。

另一个潜在的问题是布局。布局正确吗?当您突出显示时,它可能会由于某种原因而中断。

答案 1 :(得分:0)

您是否尝试在动画完成后重设文本?

   let cell = collectionView.cellForItem(at: indexPath)
    let thumbnail = postArray[indexPath.item].media[0].thumbnail!
            let date = ConvertDate(mediaTimestamp: postArray[indexPath.row].media[0].postTimeStamp!, isItForP3: false).getDate!

    UIView.animatewithDuration: 0.1, delay: 0.0, options: UIView.AnimationOptions.curveLinear, animations: {
            cell!.transform = CGAffineTransform.identity.scaledBy(x: 1.0, y: 1.0)

    }, completion: { (finished: Bool) in
      if finished {
        cell.setup(profImage: "\(self.postArray[indexPath.item].user.profileImageUrlString!)", contentView: thumbnail, titleLabel: postArray[indexPath.item].user.username!, subtitleLabel: date)
      }  
    })

不过,可能有更好的方法。

答案 2 :(得分:0)

您是否已将viewController添加到视图中?

如果是,则在将Viewcontroller添加到子视图内之前添加以下代码。

let vc = UIStoryboard(name: "YourStoryBoard", bundle:Bundle.main)
.instantiateViewController(withIdentifier: "YourViewController") as! YourViewController

self.addChildViewController(vc)
vc.didMove(toParentViewController: self)
self.view.addSubview(vc.view)

答案 3 :(得分:0)

尝试使用UILabel突出显示的文本颜色属性:

  

应用于标签文本的突出显示颜色。

     

@property(非原子的,坚固的)UIColor * highlightedTextColor;