Ich möchte nur zwei Zellen in einer Zeile anzeigen, egal, was die iPhone-Bildschirmgröße ist. Wie, Anzeigen nur zwei Spalten mit mehreren Zeilen in einer CollectionView mit Storyboard
Mein Storyboard enthält eine UICollectionView
, durch Einschränkungen verbunden.
Die Storyboard-Einstellungen für die UICollectionView
ist,
Nun, wenn ich diese laufen in 6, 5 s oder weniger, erscheint nur eine Zelle in einer Reihe. Der Code, den ich benutzt hatte, ist,
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return [categoryImages count];
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
homePageCells *cell = (homePageCells *)[collectionView dequeueReusableCellWithReuseIdentifier:@"cells" forIndexPath:indexPath];
cell.categoryName.text = [categoryNames objectAtIndex:indexPath.row];
return cell;
}
Ich habe versucht, die Bildschirmgröße zu erfassen und den Code verwenden, programmatisch geeignete Zellgröße Zuordnung
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
CGSize sizes;
CGSize result = [[UIScreen mainScreen] bounds].size;
NSLog(@"%f",result.height);
if(result.height == 480)
{
//Load 3.5 inch xib
sizes =CGSizeMake(170.f, 170.f);
NSLog(@"3gs");
}
else if(result.height == 568)
{
//Load 4 inch xib
sizes =CGSizeMake(130.f, 130.f);
NSLog(@"5s");
}
else if(result.height == 667.000000)
{
//Load 4.7 inch xib
sizes =CGSizeMake(160.f, 160.f);
NSLog(@"6");
}
else
{
NSLog(@"else");
sizes =CGSizeMake(170.f, 165.f);
}
return sizes;
}
Aber ich weiß auch, dass dies nicht der richtige Weg Also bitte gib mir einen richtigen Weg damit umzugehen.
Danke für die Rettung meines Tages. Ich bin so dumm, ich habe nicht einmal an diese einfache Lösung gedacht. Danke vielmals! –
Diese Antwort hilft mir wirklich ... Benutzer kann Polsterung je nach Anforderung ändern ... –
Das hilft wirklich. Danke für die Antwort und die Frage, die Sie gestellt haben. –