以编程方式在 UICollectionView 内对齐 UILabel 大小

Posted

技术标签:

【中文标题】以编程方式在 UICollectionView 内对齐 UILabel 大小【英文标题】:Align UILabel Size Inside UICollectionView Programatically 【发布时间】:2017-03-20 09:37:44 【问题描述】:

我在我的应用程序中使用 UICollectionView。问题是我在 UICollectionView 中有多个 UILabel。 UILabel 的宽度大于collectionview 的宽度。所以它会重叠并且看起来不太好。如何以编程方式设置collectionview标签的宽度

【问题讨论】:

UILabelUICollectionView 中,你的意思是在UICollectionViewCell 中?你能给出你的问题的截图,也许还有一些代码?你使用 NSLayoutConstraints 吗? 显示你尝试过的代码 【参考方案1】:

您可以采用带有约束或使用框架的自动布局方法,这是代码在 Objective-C 中的外观:

// using auto layout
self.label.translatesAutoresizingMaskIntoConstraints = NO;
[self.contentView addConstraint:[NSLayoutConstraint constraintWithItem:self.label
                                                 attribute:NSLayoutAttributeWidth
                                                 relatedBy:NSLayoutRelationEqual
                                                    toItem:self.contentView
                                                 attribute:NSLayoutAttributeWidth
                                                multiplier:0.8
                                                  constant:0]];


//using frames
CGFloat labelWidth = CGRectGetWidth(self.contentView.bounds)*0.8;
self.label.frame = CGRectMake(DESIRED_X_POSSITION, DESIRED_Y_POSSITION, labelWidth, DESIRED_HEIGHT);

// you can set your labels' number of lines to 0 so your text goes to the next line
self.label.numberOfLines = 0

【讨论】:

以上是关于以编程方式在 UICollectionView 内对齐 UILabel 大小的主要内容,如果未能解决你的问题,请参考以下文章

我如何以编程方式将 uicollectionview 放在扩展的 uitableviewcell 中

如何以编程方式在 UICollectionView 上添加自动布局?

以编程方式创建 UICollectionView

你能以编程方式修改 UICollectionView 滚动方向吗?

以编程方式添加 UICollectionView 时应用程序崩溃

在 Swift 中以编程方式在 UITableViewCell 中创建一个 UICollectionView