インターフェイス ビルダーで UICollectionView を作成しました。で参考にしました
@property (strong, nonatomic) IBOutlet UICollectionView *contactList;
私の .h ファイルと @synthesize contactList; 私の.mファイルで。
次のコードを使用して、縦向きと横向きでわずかに異なるレイアウトを実装しようとしました。
- (void) adjustViewsForOrientation:(UIInterfaceOrientation) orientation {
if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown) {
UICollectionViewFlowLayout *flow = (UICollectionViewFlowLayout*)contactList.collectionViewLayout;
flow.sectionInset = UIEdgeInsetsMake(48, 80, 48, 0);
flow.minimumLineSpacing = 80;
} else if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight) {
UICollectionViewFlowLayout *flow = (UICollectionViewFlowLayout*)contactList.collectionViewLayout;
flow.sectionInset = UIEdgeInsetsMake(48, 64, 48, 0);
flow.minimumLineSpacing = 64;
}
}
これは完全に機能しますが、サイズも変更したいと思います(横向きではページごとに2 * 3グリッドがあり、縦向きでは3 * 2グリッドです)。私はこのようにサイズを設定しようとしました:
CGRect frame = [contactList frame];
frame.size.width = 960;
[contactList setFrame:frame];
しかし、それは更新されません。エラーはありませんが、ビューが更新されていません。以前と同じサイズのままです。ビューを更新するにはどうすればよいですか?