2016-03-30 23 views
0

私は、ストーリーボードでUICollectionViewを初期化し、いくつかの属性をプログラムで設定することに決めました。ただし、これらの新しい属性の割り当ては、self.collectionView.reloadData()を呼び出すと有効になります。collectionViewLayout初期化

let layout = self.collectionView!.collectionViewLayout as! UICollectionViewFlowLayout 
layout.minimumInteritemSpacing = 0; 
layout.minimumLineSpacing = 0; 

ストーリーボードは現在、ゼロに設定している両方まだそれは私が彼らがプログラムに割り当てられていたときに、ゼロではありませんminimumInteritemSpacingをロードします。私は上記の3行のコードを私のviewDidLoad()関数に配置しようとしましたが、初期ロードには影響しませんでした。

私はこれも試してみた:まだ運と私は私がself.collectionView.reloadData()を呼び出す前に、初期負荷に0の両方を強制的に試みることができる他に何かわからないん

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat { 
    return 0 
} 
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat { 
    return 0 
} 

を。設定の

ストーリーボードスクリーンショット: enter image description here

+0

ストーリーボードとシミュレータのスクリーンショットを投稿できますか? –

+0

ストーリーボードのスクリーンショットを追加しました。初期化時に何が起こるかを記述しているので、私は実際にシミュレータに表示するものは何もないので、項目間の間隔は最初に表示され、次に3行のコードから 'self.collectionView.reloadData()'をトリガーした後に消えます。間隔を0に設定することは意図したとおりに実行されます。 – theflarenet

+0

'self.collectionView.reloadData()'はどこでトリガーされますか? –

答えて

0

これは私にはハックのように聞こえる、と私はそれが動作しない場合がありますので、今それをテストしますが、この試すことができません。viewDidLoad

を:

let button = UIButton(type: UIButtonType.System) as! UIButton 
button.frame = CGRectMake(100, 100, -100, -100) 
button.setTitle("Test Button", forState: UIControlState.Normal) 
button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside) 

buttonObj.sendActionsForControlEvents(.TouchUpInside) 

次に、この機能:

func buttonAction(sender:UIButton!) 
{ 
    self.collectionView.reloadData() 
} 

これにより、フレームの外側にボタンが作成されるため、ユーザーは表示されません。そして最後の行がviewDidLoadに押され、buttonAction関数が呼び出されます。

+0

私はiOS開発の初心者ですが、これはコードの最初のブロックの最後の行のために完全にスウィフトコードではないと思いますが、申し訳ありませんが、ボタンは本質的に 'refreshUI()'にも含まれている 'calculateResults()'関数を呼び出していますので、最初はアプリの読み込み時に 'calculateResults()'が呼び出されてUIViewCollectionが計算され、ボタンをクリックします。 – theflarenet