我正在开发一个TV应用程序,它有一个UICollectionView作为标签栏。集合视图中的每个单元格都有一个带字符串的UILabel。 我希望UICollectionView与RightToLeft对齐。 为此,我在viewDidLoad()中的集合视图上使用semanticContentAttribute并将其分配给.ForceLeftToRight
这一切正常,直到我尝试以不同方式设置每个单元格宽度,然后集合视图反转单元格的顺序。
也许有人可以帮我解释为什么会这样。
这是我的ViewDidLoad():
override func viewDidLoad() {
super.viewDidLoad()
self.collectionView.semanticContentAttribute = .ForceRightToLeft // make collection view right to left
}
和sizeForItem方法:
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let width:CGFloat = self.widthForView(self.tabNames[indexPath.row])
return CGSizeMake(width, 110)
}
这是自定义宽度方法:
func widthForView(text:String) -> CGFloat{
let label:UILabel = UILabel(frame: CGRectMake(0, 0, CGFloat.max, 110))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.ByWordWrapping
label.font = UIFont().myCustomFontWithSize(33)
label.text = text
label.sizeToFit()
let width = label.frame.size.width
return width
}