Ich habe eine UICollectionViewController
, die ich laden, wenn ein Benutzer ihr iPad dreht, um es in Querformat zu setzen. Das Problem, das ich habe, ist, dass meine UICollectionViewCell
s immer noch laden, als ob es im Hochformat wäre. Ich setze die UICollectionViewController
auf Landschaft innerhalb von Interface Builder, und ich verwende eine benutzerdefinierte Zellklasse, die ich CollectionViewCell
genannt habe. Jede Zelle enthält nur ein Bild und eine Beschriftung.iOS: Wie kann ich die Ausrichtung einer UICollectionViewCell ändern?
Gibt es etwas, was ich entweder in Interface Builder oder in meinem Code tun sollte? Ich habe versucht mit CGAffineTransformationMakeRotation
, aber das war keine Hilfe. Wenn jemand anderes dies schon einmal erlebt hat, wäre ich sehr dankbar! Vielen Dank!
Hier ist ein Bit des Codes als Referenz:
-(void)viewDidLoad
{
self.collectionView.dataSource = self;
self.collectionView.delegate = self;
}
- (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section
{
return listArray.count;
}
- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView
{
return 1;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"devices" forIndexPath:indexPath];
cell.statusImage.image=[UIImage imageNamed:@"Default.png"];
[email protected]"HEY !!!!!";
return cell;
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return CGSizeMake(320, 420);
}
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
return UIEdgeInsetsMake(50, 20, 50, 20);
}
Ich verwende eine benutzerdefinierte UICollectionView mit dynamischen Höhen in jeder Zelle. Aber wenn ich rotiere, ändert meine Zelle die Breite nicht über die Methode columnWidthForCollectionView und die Anzahl der Spalten über die Methode maximumNumberOfColumnsForCollectionView. Ich berechne meine Spaltenbreite dynamisch. via - (CGFloat) getCollumnWidth { CGFloat Breite = (self.view.frame.size.width- (kCollectionCellBorderRight * 3))/2; Rücksprungbreite; } Dies geschieht sowohl in iPhone und iPad. – Xeieshan