ios - 如何将 View 限制在 tableView 分隔符的边缘?

标签 ios swift uitableview nslayoutconstraint

我正在为 iPad 进行开发,当我尝试约束到 TableView 单元格的右侧时,它被约束到屏幕的右侧,而不是约束到行分隔符边缘。

declineButton?.centerYAnchor.constraint(equalTo: contentView.centerYAnchor).isActive = true
declineButton?.rightAnchor.constraint(equalTo: contentView.rightAnchor, constant: -10).isActive = true
declineButton?.heightAnchor.constraint(equalToConstant: 18).isActive = true
declineButton?.widthAnchor.constraint(equalToConstant: 18).isActive = true

上面的代码只是将其限制在最右边。

示例:请注意右侧的“已关注”按钮如何限制在分隔符的边缘。

enter image description here

最佳答案

UITableViewCellseparator 未以您可以对其进行约束的方式公开。您也许能够搜索单元格的 View 层次结构,但最好将表格的 separatorStyle 设置为 none,并添加您自己的 UIView 分隔符,然后您可以自定义并将其他 subview 约束到该分隔符。考虑到图像示例中的分隔符对我来说看起来不像库存,我猜他们也是这么做的。

编辑:我刚刚考虑过的另一个解决方案,如果你真的想保留股票分隔符:

分隔符右边缘和单元格右边缘之间的差异可以这样定义(Swift 3):

let rightConstant = myTable.layoutMargins.right + myTable.separatorInset.right + myCell.layoutMargins.right

使用它作为正确约束的常数。

关于ios - 如何将 View 限制在 tableView 分隔符的边缘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40115927/

相关文章:

ios - 在 UITextView 中输入文本和单击返回按钮有什么区别?

json - 使用 SwiftyJSON 和 Alamofire 在 TableView 上显示 JSON 数据

iphone - 如何获得警报信息?

ios - 与文件应用程序共享应用程序文档中的特定目录

ios - 升级到 XCode 7 后在 Bridging Header 中找不到头文件

ios - 如何使用户无需在 URL 前键入 "http://"?

ios - 如何更新核心数据中的现有对象? [ swift ]

ios - 如何在 Apple Watch 上禁用 "turn-to-sleep"?

ios - 如何知道选择了哪个部分? swift

ios - Swift:如何实现 CVCalendar