0

カスタムのナビゲーションバーの下にプログラムコレクションビューの描画コレクションビューがありますが、そのフレームが次のように変化すると先頭から開始されます:CGRectMake(0.0,64.0、self.view.frame.size.width、self.view。 frame.size.height)それは私がナビゲーションバーの後にフレームを開始することができる方法を教えて、黒い画面を削除also.Pleaseスクリーンショットとコードを添付した上に、黒い画面が表示さenter image description here: -UICollectionViewの設定フレーム

self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 


UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init]; 
collectionView_=[[UICollectionView alloc] initWithFrame:CGRectMake(0.0,64.0 ,self.view.frame.size.width , self.view.frame.size.height) collectionViewLayout:layout]; 


[collectionView_ setDataSource:self]; 
[collectionView_ setDelegate:self]; 

[collectionView_ registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cellIdentifier"]; 
[collectionView_ setBackgroundColor:[UIColor redColor]]; 

[self.view addSubview:collectionView_]; 
+0

[UICollectionViewのセルの間隔]の可能な複製(0120-919-03) –

+0

おそらくあなたはこの 'self.view = [[UIView alloc ] initWithFrame:[[[UIScreen mainScreen] bounds]]; ' –

答えて

0

削除:

self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

それ以外の場合は、self.viewをだからこそ、あなたは黒を見ます。なぜなら、UICollectionViewですから。 あなたが不透明にごNavigation Barを設定した場合は、お使いの原点はNavigation Barの下に自動的になりますUIViewController

のself.viewフレームを変更することはありません。だからあなたのUICollectionViewのフレームはなり

self.navigationController.navigationBar.translucent = NO; 

: - 手動ながらナビゲーションバーを説明するためにしようとしているように思える

CGRectMake(0.0, 0.0 ,self.view.frame.size.width , self.view.frame.size.height); 
0

automaticallyAdjustsScrollViewInsetsを見てみ あなたはでそれを変更することができますシステムはまた、ナビゲーションバーを考慮しようとしている。あなたのビューコントローラから

self.automaticallyAdjustsScrollViewInsets = false;

:あなたはそれを自分で行いたい場合は、呼び出すことによって、何にシステムを教えていないする必要があります。

詳細については、documentationを参照してください。

0

実際にコードに問題はありません。そのバグです。

collectionView_=[[UICollectionView alloc] initWithFrame:CGRectMake(0.0,64.0 ,self.view.frame.size.width , self.view.frame.size.height) collectionViewLayout:layout]; 

この行は、コレクションビューyの位置を上から64に作成します。ナビゲーションバーがある場合は正しいです。画像からは、あなたのコントローラにナビゲーションバーが存在しないことがわかります。 ナビゲーションバーを追加するか、上記の回答に記載されているように変更してください。 つまり、UICollectionビューのfromをUIScreenに設定します。

self.view = [[UIView alloc] initWithFrame:[self.view bounds]]; 

と@Jacopo Penzo

で述べたように、あなたは

self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

を削除し、この作品を願っています。

関連する問題