[英]Change UICollectionViewCell layout on orientation
这将是我的逻辑:
添加一个collectionViewCell对于具有不同reuseIdentifier的横向布局。
声明一个BOOL变量,如: BOOL isLAndscape;
在实现部分。默认情况下,bool值为NO
或False
。
如果方向改变,请检查通知! 你可以在viewDidLoad中设置This Thing
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(OrientationDidChange:) name:UIDeviceOrientationDidChangeNotification object:nil];
每当你的设备的方向改变OrientationDidChange调用你可以做任何你想要的每个方向。在你的情况下,如果方向是横向,那么isLAndacape = YES; 然后重新加载collectionView。
-(void)OrientationDidChange:(NSNotification*)notification
{
UIDeviceOrientation Orientation=[[UIDevice currentDevice]orientation];
if(Orientation==UIDeviceOrientationLandscapeLeft || Orientation==UIDeviceOrientationLandscapeRight)
{
isLAndscape=YES;
[collectionVIew reloadData];
}
else if(Orientation==UIDeviceOrientationPortrait)
{
isLAndscape=NO;
[collectionVIew reloadData];
}
}
在collectionView的cellForItemAtIndexPath
方法中,添加bool islAndacape
的条件检查并更改reuseIdentifier。
NSString *reuseIdentifier;
if(isLAndscape)
{
reuseIdentifier=@"landscapeReuseId";
}
else
{
reuseIdentifier=@"portraitReuseId";
}
而已!!
免责声明! 这是我的逻辑。我没试过这个。检查一下是否有效。
您需要在横向旋转上更改collectionViewLayout
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.