【问题标题】:How to implement Grid Layout for iosios如何实现网格布局
【发布时间】:2017-07-17 10:40:19
【问题描述】:

ios如何实现Grid布局?有类似的布局:<Grid> in windows xaml and <GridLayout> in android,但我没有找到任何资源,涵盖如何在 ios 中实现类似的东西。

简而言之:应该有所谓的“网格”,在其中我指定有多少行和单元格,然后我可以指定某些特定控件(例如TextView)应该从x 列开始并跨越w 列,从y 行开始,跨越h 行。

更新:不要将GridControlGridLayout 混淆,GridLayout 的示例:

【问题讨论】:

  • UICollectionVIew

标签: ios layout


【解决方案1】:

【讨论】:

    【解决方案2】:

    使用UICollectionView 进行网格布局。检查this 的答案,其中详细显示了UICollectionView 的集成

    对于这样的布局,您也需要使用collectionView 本身,但要正确使用sizeForItemAtIndexPath 数据源。检查this 答案。也尝试自定义UICollectionViewFlowLayout

    this 也是一个很棒的库,它也为你做同样的事情

    【讨论】:

    • 您在谈论 GridView,这是一个不同的控件。我没有找到任何允许单元格跨越多行和多列的示例。
    • @AccessDenied 为此,您还需要使用 collectionView 本身,但要正确使用 sizeForItemAtIndexPath 数据源。检查这个答案:stackoverflow.com/a/25275878/7456236 这个库也为你做同样的事情:github.com/betzerra/MosaicLayout
    • 您的答案并非 100% 正确,mozaic 视图是另一回事。我在答案中添加了链接,这正是我需要的。
    • 好的。无论如何,很高兴它帮助了你:)
    【解决方案3】:

    借助以下博客文章,我能够实现 GridLayout: https://web.archive.org/web/20170620013903/http://blog.stablekernel.com/creating-a-custom-uicollectionviewlayout

    简而言之,我必须实现自己的 UICollectionViewLayout,但我不需要文章中介绍的复杂性。

    这个解决方案的问题是细胞重复使用,我不需要,也没有办法关闭它。

    【讨论】:

    【解决方案4】:

    另一种选择是找出 xamarin 如何实现 GridLayout 并尝试重现它。 https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Core/GridCalc.cs

    【讨论】:

      【解决方案5】:

      实现它的另一种方法是从 UIView 继承并覆盖 LayoutSubviews 方法并手动设置子 Frame。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-14
        • 1970-01-01
        • 2020-01-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多