gpt4 book ai didi

ios - 自定义 UIView 作为 navigationItem 标题

转载 作者:行者123 更新时间:2023-11-29 10:33:18 28 4
gpt4 key购买 nike

我想创建简单的自定义 View 并将其用于 navigationItem.titleView。我的自定义 View 非常简单,只有 ImageView 和标签:[图像]-[标签]。我有 xib 文件,我在其中定义了所有约束(两个 subview 都对 super View 有约束 - 我想 subview 的高度和宽度确定整个自定义 View 的高度和宽度)。问题是当我像这样从 xib 实例化 View 时:

class func titleViewWithTitle(title: String, icon: UIImage?) -> TitleView {
let titleView = NSBundle.mainBundle().loadNibNamed("TitleView", owner: self, options: nil).first as TitleView
titleView.title.text = title
titleView.icon.image = icon
titleView.layoutSubviews()
return titleView
}

这个 View 的大小不是由它的 child 决定的。它具有在 Interface Builder 中手动设置的大小。我该怎么做才能强制 View 动态计算大小?

最佳答案

在您的自定义 View 中,覆盖 layoutSubviews 方法并添加:

CGSize targetSize = [self     systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];

从中创建一个 CGRectFrame 并将此框架设置为自己的新框架(这是自定义 View )。

这基本上会找到仍然以显示所有内容的方式包含其内容的最小可能框架。

注意:此自定义 View 的所有 subview 都必须正确设置自动布局压缩阻力。 IE。他们必须抵抗萎缩。

关于ios - 自定义 UIView 作为 navigationItem 标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28412434/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com