【问题标题】:Resize UICollectionView when a new row is created创建新行时调整 UICollectionView 的大小
【发布时间】:2014-12-18 18:28:43
【问题描述】:

我在屏幕上自动布局的两个 UIView 之间有一个集合视图。 当我将单元格添加到此集合视图并且水平空间已满时,它会创建一个新行,但该行不可见,因为它不适合它的父视图高度。 我想在创建新行时增加集合视图高度,以便每一行都可见。 我该如何实现这种行为?是否可以使用自动布局来完成,或者我需要以编程方式完成?

我创建了一个简单的测试项目来显示问题: https://github.com/eduardoportilho/TestCollectionViewResize

【问题讨论】:

    标签: ios objective-c swift uikit


    【解决方案1】:

    我认为您需要在代码中执行此操作。为集合视图上的高度约束创建一个 IBOutlet,并使用此代码(heightCon 是我的出口),

    @IBAction func grow(sender: AnyObject) {
            itemCount++
            coll.reloadData()
            coll.layoutIfNeeded()
            heightCon.constant = coll.contentSize.height
    }
    

    如果您希望黄色视图像约束中那样 >= 300,那么您应该将集合视图的高度约束的优先级更改为小于 1000(我使用的是 750)。这将导致您的集合视图增长,直到增长到更高会导致黄色视图短于 300。此后添加的任何单元格都会导致集合视图滚动。

    【讨论】:

    • 不错!它完美地工作,谢谢。向约束添加出口并以编程方式操作它们是一种常见的做法吗?
    • @Eduardo,是的,这很常见,也是使用约束移动或调整视图大小的最简单方法。
    猜你喜欢
    • 2013-03-07
    • 2023-02-15
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    相关资源
    最近更新 更多