私はXラベル(またはボタン)があるシナリオを持っています。それらは水平のコレクションビューで表示されます。スクロール可能であってはいけません。問題は、lables/buttonsの数が変更できることです(0〜5)。コレクションビューのアイテム数が異なる場合、アイテムはコレクションビューに表示されます。
完璧なものは、すべての項目に等しい幅を持つStackViewを用いることであろうが、それはiOSの9.必要があるため、私は、それを使用することはできませんので
(Iは、iOS 8.0の互換あまりに-.-が必要)私はスクロールすることができないコレクションビューを構築し、セルの動的な高さと幅を設定したい。
は私が
heightOfLabel = testModeLoginCollectionView.frame.height
widthOfLabel = testModeLoginCollectionView.frame.width/
CGFloat(array5.count)
結果はtestModeLoginCollectionView.frame.width = 568.0 widthOflabel 113.6 array5 = 5つの項目
私は私の細胞の大きさに、このメソッドを使用している私のcollectionViewの高さ/幅を取得します:
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let c = CGSizeMake(heightOfLabel!, widthOfLabel!);
return c
}
セルの幅を113.6と33.0に調整する必要があります。 Buこれは次のようになります:
アスペクトフィット、スケールフィリングなどでちょっと試しましたが、それほど変わっていません。それは大きすぎるか小さすぎます。
誰かがアイデアを持っていますか?コレクションView以外の技術も使用します。
私はいつ私の変数に値を保存しましたか?
override func viewDidLoad() {
testModeLoginCollectionView.delegate = self
testModeLoginCollectionView.dataSource = self
heightOfLabel = testModeLoginCollectionView.frame.height
widthOfLabel = testModeLoginCollectionView.frame.width/CGFloat(array5.count)
print("testModeLoginCollectionView.frame.width \(testModeLoginCollectionView.frame.width)")
print("widthOfLabel \(widthOfLabel)")
}
viewDidLayoutSubviewsは、右のフレームを持って見た後、私はにviewDidAppearでそれを試してみましたが、違いはありません
のような同じAPIを持っているのか? – ZeMoon