gpt4 book ai didi

ios - 获取操作表内标题 View 的高度

转载 作者:行者123 更新时间:2023-11-30 10:59:02 25 4
gpt4 key购买 nike

我制作了一个自定义 Nib ,用于在应用程序内显示人员照片、姓名和公司信息。该 Nib 显示在操作表的标题区域中。目前我已经设法获取该区域的宽度,但无法获取高度 - 因为我似乎找不到要检查其大小的 View 。

UIAlertController中,我采用了contactAlertController.view.subviews[0]来获取警报的宽度。但高度是包括按钮在内的完整高度。

有什么方法可以达到标题 View 大小吗?因为现在的主要问题是,如果用户的名称太长或太短,那么它并没有真正包装好,或者留下太多空间 - 因为我已将标题写为 "\n\n\n\n\n\n"

我的代码

let contactAlertController = UIAlertController(title: "\n\n\n\n\n\n", message: nil, preferredStyle: UIAlertController.Style.actionSheet)

guard let customView = Bundle.main.loadNibNamed("userInfo", owner: self, options: nil)?.first as? QuickInfoView else { return }
customView.backgroundColor = .clear
customView.translatesAutoresizingMaskIntoConstraints = false

customView.staffName.text = "\(user.givenName) \(user.surname)"
customView.staffCompany.text = users[indexPath.row].companyName
customView.staffTitle.text = users[indexPath.row].jobTitle
customView.imageView.image = users[indexPath.row].userPhoto ?? UIImage(named: "nobody")!

let viewToPlaceNibIn = contactAlertController.view.subviews[0]

contactAlertController.view.addSubview(customView)

NSLayoutConstraint.activate([NSLayoutConstraint(item: customView, attribute: .left, relatedBy: .equal, toItem: viewToPlaceNibIn, attribute: .left, multiplier: 1, constant: 0),
NSLayoutConstraint(item: customView, attribute: .right, relatedBy: .equal, toItem: viewToPlaceNibIn, attribute: .right, multiplier: 1, constant: 0),
NSLayoutConstraint(item: customView, attribute: .top, relatedBy: .equal, toItem: viewToPlaceNibIn, attribute: .top, multiplier: 1, constant: 0)])

我需要的区域大小的图像

The view I need the size for is marked in red

最佳答案

您可以使用systemLayoutSizeFitting(_:)方法在应用所有约束后获取 UIView 的计算大小。

类似这样的事情:

let height = customView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height

当然,您需要在设置所有数据(标签的文本)以供查看后计算它。但@Larme 的评论是正确的,自定义 UIAlertController 并不是一个好的做法。最好编写一些具有自定义转换的 UserMenuViewController ,其作用类似于操作表。

关于ios - 获取操作表内标题 View 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53617703/

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