我有一个UICollectionView在我的故事板基于iOS应用程序。当设备是在纵向方向,我想它垂直滚动,当它在景观设计师我想它水平滚动。在UICollectionView中,我可以看到 scrollEnabled 成员,但我看不到设置滚动方向的方法。我错过了什么吗?
3mpgtkmj1#
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init]; [flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
还要注意,在流布局中用prepareForLayout调用它似乎是可以的。
prepareForLayout
@interface LayoutHorizontalThings : UICollectionViewFlowLayout @end @implementation LayoutHorizontalBooks -(void)prepareLayout { [super prepareLayout]; self.scrollDirection = UICollectionViewScrollDirectionHorizontal; self.minimumInteritemSpacing = 0; self.minimumLineSpacing = 0; self.itemSize = CGSizeMake(110,130); self.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0); }
bvn4nwqk2#
Swift 4.2
if let layout = collectionViewObj.collectionViewLayout as? UICollectionViewFlowLayout { layout.scrollDirection = .vertical // .horizontal }
mfpqipee3#
设置集合视图的collectionViewLayout的scrollDirection。医生来了。
collectionViewLayout
scrollDirection
a2mppw5e4#
你应该试试这个:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{ UICollectionViewFlowLayout *layout = (UICollectionViewFlowLayout *)[self.collectionView collectionViewLayout]; if ((toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) || (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft)){ layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; } else{ layout.scrollDirection = UICollectionViewScrollDirectionVertical; } }
在Swift中:
override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) { var layout = self.collectionView.collectionViewLayout as! UICollectionViewFlowLayout if ((toInterfaceOrientation == UIInterfaceOrientation.LandscapeLeft) || (toInterfaceOrientation == UIInterfaceOrientation.LandscapeRight)){ layout.scrollDirection = UICollectionViewScrollDirection.Vertical } else{ layout.scrollDirection = UICollectionViewScrollDirection.Horizontal } }
k5hmc34c5#
感谢Mundi和Dan Rosenstark的回答,这是Swift 4.2版本。
if let flowLayout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout { flowLayout.scrollDirection = .horizontal }
xam8gpfp6#
在你的故事板里这样做。从身份检查器中选择滚动方向并选择您的方向。
6条答案
按热度按时间3mpgtkmj1#
还要注意,在流布局中用
prepareForLayout
调用它似乎是可以的。bvn4nwqk2#
Swift 4.2
mfpqipee3#
设置集合视图的
collectionViewLayout
的scrollDirection
。医生来了。
a2mppw5e4#
你应该试试这个:
在Swift中:
k5hmc34c5#
感谢Mundi和Dan Rosenstark的回答,这是Swift 4.2版本。
xam8gpfp6#
在你的故事板里这样做。从身份检查器中选择滚动方向并选择您的方向。