gpt4 book ai didi

ios - 转换倒置的表格 View 单元格中的 3D Touch Peek

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

我有一个聊天应用程序,我在其中使用倒置表格 View 技术(表格 View 通过转换缩放到 (1, -1),并且所有单元格本身也缩放到 (1, -1),中和效果,从而有效地反转 TableView 以在底部显示“第一个”单元格)以从底部“启动” TableView 。一切正常,除了我需要实现 peek 和 pop 手势。我已将表格 View 单元格内的按钮连接到目标 View Controller ,并启用了 peek 和 pop,如下所示:

enter image description here

手势有效,但当我部分 3D 触摸并保持足够多以突出触摸的项目(但不弹出预览 View Controller )时,我得到倒置 View :

enter image description here

如何通过正确的变换使 View 弹出,同时仍然使用倒置的表格 View ?

最佳答案

它在轻按后显示倒置 View 的原因并不是因为它从单元格中删除了变换。事实上,单元格上的转换保持原样,但 segue 将单元格 View 从 tableView 的上下文中拉出来。因此,单元格上的变换不再被表格上的变换抵消。

我相信您可以通过对 UIStoryboardSegue 进行子类化来解决此问题,但切换在底部启动表格的方法可能会容易得多。在 this question 上查看已接受的答案.

我使用了一个稍微修改过的版本,它包含了导航栏和状态栏:

func updateTableContentInset() {
let numRows = tableView(self.tableView, numberOfRowsInSection: 0)
var contentInsetTop = self.tableView.bounds.size.height - (self.navigationController?.navigationBar.frame.size.height)! - 20
for i in 0..<numRows {
let rowRect = self.tableView.rectForRow(at: IndexPath(item: i, section: 0))
contentInsetTop -= rowRect.size.height
if contentInsetTop <= 0 {
contentInsetTop = 0
}
}
self.tableView.contentInset = UIEdgeInsetsMake(contentInsetTop, 0, 0, 0)
}

只需将它添加到您的 UITableViewController 并在 viewDidLoad() 上调用它,每次将新行添加到表中时。

添加新行然后调用 updateTableContentInset() 后,您必须像这样滚动到底部:

tableView.scrollToRow(at: indexPath, at: .bottom, animated: true)

因为这里没有任何颠倒的东西,你的 Peek segue 不会有问题。

关于ios - 转换倒置的表格 View 单元格中的 3D Touch Peek,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49513439/

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