ios - 当父 UIview 约束减少时,如何使 swift UIview 子元素自动收缩?

标签 ios swift

class ViewController{                

    @IBOutlet weak var UiCalendarView: UIView!
    @IBOutlet weak var UiCalendarViewConstraint: NSLayoutConstraint!
    let calendar = FSCalendar(frame: CGRect(x: 0, y: 0, width: 373, height:300))


    override func viewDidLoad() {
        super.viewDidLoad()
        UiCalendarView.addSubview(self.calendar)
        UiCalendarViewConstraint.constant = 23
    }
}

但是 UiCalendarViewConstraint.constant 更改并没有多大作用,因为子组件 calendar 有自己的高度并且保持不变。

最佳答案

您需要向子级添加约束,并在父级大小更改时捕获引用,您根据高度更改子级的约束。 但是,如果您将子级与父级从顶部和底部固定在一起,则当父级尺寸更改时,子级会自动更改

let parentView = UIView()
let childView = UIView()
parentView.addSubView(childView)
childView.translatesAutoresizingMaskIntoConstraints = false
parentView.translatesAutoresizingMaskIntoConstraints = false

childView.topAnchor.constraint(equalTo: parentView.topAnchor).isActive = true
childView.bottomAnchor.constraint(equalTo: parentView.bottomAnchor).isActive = true
childView.leadingAnchor.constraint(equalTo: parentView.leadingAnchor).isActive = true
childView.trailingAnchor.constraint(equalTo: parentView.trailingAnchor).isActive = true

这段代码将让 subview 填充父 View ,当您自动更改父 View 的高度或宽度时,它将调整其大小。

关于ios - 当父 UIview 约束减少时,如何使 swift UIview 子元素自动收缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52968328/

相关文章:

ios - 将方法从一个类覆盖到另一个类

objective-c - 为什么我在标签栏点击时出现构建错误?

ios - 如何在 didReceiveRemoteNotification 中获取 userInfo JSON 值

swift - Segue 未从 Swift 中的 TableViewCell 触发

ios - 模拟器中的 Logo 大小已更改

ios - 收到警报后如何转到/激活/设置文本字段的焦点

android - 在 Ionic 应用程序中隐藏导航栏

ios - 如何在具有多个字段的 TableView 中创建一个单元格?

iphone - cell.titleLabel的字体设置应该在cellForRowAtIndexPath:方法中的什么位置?

ios - 在 SwiftUI 中通过多个 View 绑定(bind)数组