gpt4 book ai didi

iOS 在点击 AutoLayout 时展开 UITableViewCell

转载 作者:可可西里 更新时间:2023-11-01 04:57:19 25 4
gpt4 key购买 nike

我正在开发简单的应用程序,现在我专注于在用户点击该单元格后扩展 UITableViewCell。这是 iOS 8 应用程序,所以我设置了:

self.tableVIew.rowHeight = UITableViewAutomaticDimension
self.tableVIew.estimatedRowHeight = 50

单元格约束如下所示:

enter image description here

如果用户点击单元格,则调用此函数:

func extend() {
self.contentView.removeConstraint(self.bottomConstraint)

let additionalView = UIView()
additionalView.setTranslatesAutoresizingMaskIntoConstraints(false)
additionalView.backgroundColor = UIColor.orangeColor()
self.contentView.addSubview(additionalView)
self.contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:[additionalView(50)]-5-|", options: nil, metrics: nil, views: ["additionalView" : additionalView]))
self.contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-5-[additionalView(100)]-5@999-|", options: nil, metrics: nil, views: ["additionalView" : additionalView]))
}

self.bottomConstraint 是绿色圆圈底部和 cell contentView 底部之间的约束。

问题是:为什么此解决方案在约束中设置了优先级时有效:

V:|-5-[additionalView(100)]-5@999-|

?

没有明确的优先级我得到了错误:

(
"<NSLayoutConstraint:0x7a63f7a0 'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x7a737840(60)]>",
"<NSLayoutConstraint:0x7a644f40 V:|-(5)-[UIView:0x7a63f2a0] (Names: '|':UITableViewCellContentView:0x7a737840 )>",
"<NSLayoutConstraint:0x7a644fb0 V:[UIView:0x7a63f2a0(100)]>",
"<NSLayoutConstraint:0x7a644f70 V:[UIView:0x7a63f2a0]-(5)-| (Names: '|':UITableViewCellContentView:0x7a737840 )>"
)

Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7a644f70 V:[UIView:0x7a63f2a0]-(5)-| (Names: '|':UITableViewCellContentView:0x7a737840 )>

最佳答案

我制作了一个演示,可以为您提供所需的确切行为。链接在这里: https://github.com/rushisangani/TableViewCellExpand

请按照演示中的说明设置展开/折叠 View 的约束。

关于iOS 在点击 AutoLayout 时展开 UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28546530/

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