RightToLeft UICollectionView

时间:2016-06-30 11:31:18

标签: ios iphone xcode swift tvos

我正在开发一个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

}

0 个答案:

没有答案