আমি দুটি ইউআইসিএল্লেশনভিউফ্লোলোআউট ব্যবহার করে সমাধান করেছি। একটি প্রতিকৃতি জন্য এবং একটি প্রাকৃতিক দৃশ্যের জন্য। আমি তাদের আমার সংগ্রহে নিযুক্ত করিভিউ ডিডলয়েডে দিনব্যাপী দেখুন
self.portraitLayout = [[UICollectionViewFlowLayout alloc] init];
self.landscapeLayout = [[UICollectionViewFlowLayout alloc] init];
UIInterfaceOrientation orientationOnLunch = [[UIApplication sharedApplication] statusBarOrientation];
if (UIInterfaceOrientationIsPortrait(orientationOnLunch)) {
[self.menuCollectionView setCollectionViewLayout:self.portraitLayout];
} else {
[self.menuCollectionView setCollectionViewLayout:self.landscapeLayout];
}
তারপরে আমি কেবল এইভাবে আমার সংগ্রহ ভিউফ্লোএলআউটডেলগেট পদ্ধতিগুলি পরিবর্তন করেছি
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
CGSize returnSize = CGSizeZero;
if (collectionViewLayout == self.portraitLayout) {
returnSize = CGSizeMake(230.0, 120.0);
} else {
returnSize = CGSizeMake(315.0, 120.0);
}
return returnSize;
}
সর্বশেষে আমি আবর্তনের সময় একটি বিন্যাস থেকে অন্যটিতে স্যুইচ করি
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
if (UIInterfaceOrientationIsPortrait(fromInterfaceOrientation)) {
[self.menuCollectionView setCollectionViewLayout:self.landscapeLayout animated:YES];
} else {
[self.menuCollectionView setCollectionViewLayout:self.portraitLayout animated:YES];
}
}