无法在 UICollectionView 中修改 UILabel 框架?

Posted

技术标签:

【中文标题】无法在 UICollectionView 中修改 UILabel 框架?【英文标题】:Unable to modify UILabel frame inside UICollectionView? 【发布时间】:2017-02-23 17:49:28 【问题描述】:

我有 ViewController 和里面的 UICollectionView,我正在尝试以编程方式将 UILable 添加到 UICollectionView:

let Label: UILabel = 
    let label = UILabel()
    label.text = "Sample Text Here"
    label.textAlignment = .center
    label.textColor = UIColor(white: 0.4, alpha: 0.4)
    label.font = UIFont.systemFont(ofSize: 20)
    return label
()

override func viewDidLoad() 
    super.viewDidLoad()

    Label.translatesAutoresizingMaskIntoConstraints = false
    Label.frame = CGRect(x: 0, y: 40, width: view.frame.width, height: 20)
    collectionView.addSubview(Label)

当我尝试更改 y 值时,它是相同的

当我尝试像这样添加它时:view.addSubView(Label) 根本没有出现。

注意:如果没有数据填充单元格,则应显示标签

【问题讨论】:

不要将子视图添加到collectionView。创建 UICollectionViewCell 并向单元格添加标签 @Bhanupriya 如果没有要填充的单元格,标签将出现 【参考方案1】:

它工作..

  override func viewDidLoad() 
    super.viewDidLoad()

    let collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: 300, height: 300), collectionViewLayout: UICollectionViewFlowLayout())

    self.view.addSubview(collectionView)
    collectionView.backgroundColor = UIColor.red

    let label = UILabel()
    label.text = "Sample Text Here"
    label.textAlignment = .center
    label.textColor = UIColor(white: 0.4, alpha: 0.4)
    label.font = UIFont.systemFont(ofSize: 20)

    label.frame = CGRect(x: 0, y: 100, width: view.frame.width, height: 20)
    collectionView.addSubview(label)


不过,在直接向 collectionview 添加标签时要小心。 您可以创建一个 uiview 并向其添加标签和集合(当然使用适当的集合视图布局)。仅将集合视图用于显示单元格并根据需要向 cell.contentView 添加任何内容

谢谢。

【讨论】:

以上是关于无法在 UICollectionView 中修改 UILabel 框架?的主要内容,如果未能解决你的问题,请参考以下文章

无法在UIInputViewController中使用UICollectionView进行键盘扩展

无法在 Swift 3 中调用非函数类型“UICollectionView”的值

无法在 uicollectionview 中显示一组 uimage

无法将目录中保存的图像召回到 UICollectionView

无法在 iOS8 中显示 UICollectionView 菜单

具有自定义布局的 UICollectionView - 无法在情节提要中添加补充视图