【问题标题】:How to achieve Grid view using collection view cell swift ios如何使用collection view cell swift ios实现网格视图
【发布时间】:2016-07-01 10:41:41
【问题描述】:

请告诉我如何制作网格视图,例如纵向每列 2 个单元格和横向每列 3 个单元格。在不使用 pod 或第三方框架的情况下使用集合视图自定义单元格。

提前致谢。

【问题讨论】:

    标签: ios iphone swift ios9


    【解决方案1】:

    你需要这样做

    func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
        let collectionViewSize = collectionView.frame.size.width
    
        if(UIDeviceOrientationIsLandscape(UIDevice.currentDevice().orientation))
        {
           return CGSizeMake(collectionViewSize/3, collectionViewSize/3)
        }
        else if(UIDeviceOrientationIsPortrait(UIDevice.currentDevice().orientation))
        {
                return CGSizeMake(collectionViewSize/2, collectionViewSize/2)
        }
        return CGSizeZero
    }
    

    你还需要在方向改变时重新加载

    NSNotificationCenter.defaultCenter().addObserver(self, selector: "rotated", name: UIDeviceOrientationDidChangeNotification, object: nil)
    
    func rotated()
    {
       collectionView.reloadData() 
    }
    

    注意:一定要确认UICollectionViewDelegateFlowLayout协议

    【讨论】:

      【解决方案2】:

      我已经回答了类似here 的问题。我什至解释了如何更改视图以符合您的要求。在您的情况下,它可能看起来像这样。

      let orientation = UIApplication.sharedApplication().statusBarOrientation
      if(orientation == .LandscapeLeft || orientation == .LandscapeRight)
      {
          return CGSizeMake((yourCollectionView.frame.size.width-10)/3, (yourCollectionView.frame.size.height-10)/3)
      }
      else{
         return CGSizeMake((yourCollectionView.frame.size.width-5)/2, (yourCollectionView.frame.size.height-5)/2)
      }
      

      扣除是单元格填充(在我的例子中是 5)。如果 3 个单元格,则 2 个单元格填充,总共扣除 10 个单元格,如果 2 个单元格,则 1 个单元格填充,总共扣除 5 个单元格。希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-11
        • 1970-01-01
        相关资源
        最近更新 更多