Chcę wyświetlić tylko dwie komórki z rzędu, bez względu na rozmiar ekranu iPhone'a. Podobnie jak, Wyświetl tylko dwie kolumny, z wieloma wierszami w widoku CollectionView przy użyciu storyboardu
Mój scenariusz zawiera UICollectionView
, połączony wiązaniami.
Ustawienia storyboard do UICollectionView
jest
Teraz, gdy uruchomię to w 6, 5s lub poniżej, tylko jedna komórka pojawia się w wierszu. Kod ja używany jest
- (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;
}
Próbowałem wykrywania rozmiaru ekranu i przypisanie odpowiedniego rozmiaru komórek programowo przy użyciu kodu,
- (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;
}
Ale wiem też, że to nie jest właściwa droga , więc proszę, daj mi właściwy sposób, aby sobie z tym poradzić.
Dzięki za uratowanie mojego dnia. Jestem taki głupi, nawet nie myślałem o tym prostym rozwiązaniu. Wielkie dzięki! –
Ta odpowiedź naprawdę mi pomaga ... Użytkownik może zmienić wypełnienie zgodnie z wymogami ... –
To naprawdę pomaga. Dziękuję za odpowiedź i pytanie, które podniosłeś. –