天道酬勤,学无止境

在同一个视图控制器中的多个集合视图或表格视图上实现 3D 触摸(Implement 3D touch on multiple collection views or table views in the same view controller)

问题

我想对我的应用程序的两个集合视图进行 3D 触摸(仅“Peek”功能)。 它们都包含在同一个视图控制器中。 无论我尝试什么语法,它总是在第一个集合视图中显示单元格的图像和文本,即使我在第二个集合视图中选择一个单元格。 如何将这些分开,以便只有一个专门针对我选择的 collectionview 单元格发生?

以下是我如何实现 3D 触摸功能:

我把它放在 VC 的 viewDidAppear 中,因为它由于某种原因在 viewDidLoad 中不起作用:

  override func viewDidAppear(animated: Bool) {

  if( traitCollection.forceTouchCapability == .Available){

    registerForPreviewingWithDelegate(self, sourceView: collectionView1)
    registerForPreviewingWithDelegate(self, sourceView: collectionView2)

}

这是我在包含两个集合视图的 VC 中的内容:

func previewingContext(previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {


guard let previewVC = storyboard?.instantiateViewControllerWithIdentifier("PreviewVC") as? PreviewViewController
    else{ return nil }

guard let indexPath = collectionView1?.indexPathForItemAtPoint(location) else { return nil }
guard let indexPath2 = collectionView2.indexPathForItemAtPoint(location) else { return nil }
guard let cell1 = collectionView1?.cellForItemAtIndexPath(indexPath) else { return nil }
guard let cell2 = collectionView2.cellForItemAtIndexPath(indexPath) else { return nil}

    previewVC.selectedItem = String(Gifs.row1[indexPath.row])
    previewVC.selectedItem2 = String(Gifs.row2[indexPath.rown])

    previewVC.preferredContentSize = CGSize(width: 245, height: 200)
    previewingContext.sourceRect = cell1.frame

return previewVC
}

这是我在 previewVC 中的内容:

class PreviewViewController: UIViewController {


 @IBOutlet weak var selectedGifImageView: UIImageView!

 @IBOutlet weak var textLabel: UILabel!


 var selectedItem: String?
 var selectedItem2: String?
 var delegate: MoveScrollViewController?

override func viewWillAppear(animated: Bool) {

 textLabel.text = Gifs.gifDictionary[selectedItem]
 selectedGifImageView.setGifImage(UIImage(name: selectedItem))

 textLabel.text = Gifs.gifDictionary[selectedItem2]
 selectedGifImageView.setGifImage(UIImage(name: selectedItem2))

}

正在发生的事情的gif

回答1

这就是我在我的项目中所做的。

我在 viewController 的顶部有一个 scrollView,在底部有一个 tableView。 我希望其中两个采用 peek 和 pop。 所以以下是我所做的。

首先,您需要将 UIViewControllerPreviewingDelegate 添加到要实现 peek 和 pop 功能的 viewController 中。

二、通过调用注册容器视图(通常是self.view)

if self.traitCollection.forceTouchCapability == .Available {
    registerForPreviewingWithDelegate(self, sourceView: view)
}

第三,您将视图坐标系的 CGPoint 转换为您希望在 previewingContext 委托中具有窥视和弹出功能的任何视图

func previewingContext(previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController?

例如:

一种。 将 self.view 上的 CGPoint 转换为 tableView 内的点

let tableViewPoint = tableView.convertPoint(location, fromView: view)

湾有了这个点之后,你可以确认tableViewPoint是否在tableView里面,从tableViewPoint中获取tableViewCell,然后用它做一些事情。

if self.tableView.pointInside(tableViewPoint, withEvent: nil) {
    guard let indexPath =  self.tableView.indexPathForRowAtPoint(tableViewPoint) else {
            return nil
        }

    guard let tableViewCell = self.tableView.cellForRowAtIndexPath(indexPath) else {
            return nil
        }
    // do something with your tableView cell here...
    let yourViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("YOURVIEWCONTROLLER") as! YOURVIEWCONTROLLER

    // set up the contentSize for peek
    yourViewController.preferredContentSize = CGSize(width: 0.0, height: 600)

    // set up the focusing rect for the tableViewCell so that it won't be blurred out.
    let viewPoint = self.view.convertPoint(tableCell.frame.origin, fromView: self.tableView)
    previewingContext.sourceRect = CGRect(origin: viewPoint, size: tableCell.frame.size)
    return yourViewController
}

然后对滚动视图执行完全相同的操作,然后您将能够在同一个 viewController 中对 scrollView 和 tableView 进行查看和弹出。

最后为 pop 实现第二个委托

func previewingContext(previewingContext: UIViewControllerPreviewing, commitViewController viewControllerToCommit: UIViewController) {
    showViewController(viewControllerToCommit, sender: self)
}

它非常适合我。 希望它也能帮助你。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 不能将 UISearchController 与 UICollectionView 一起使用?(Can't use UISearchController with UICollectionView?)
    问题 在 WWDC 2014 演讲“A Look Inside Presentation Controllers”中,演示者展示了如何在 UITableView 中设置 UISearchController。 他们通过设置searchController 的searchBar 的框架,然后将其设置为tableView 的tableHeaderView 来做到这一点。 不幸的是,UICollectionView 没有对应的 tableHeaderView。 使用 UISearchDisplayController,这很简单:创建一个 UISearchBar 并将其添加到自定义 UICollectionView 部分标题,然后使用搜索栏初始化 UISearchDisplayController。 问题是,您无法使用 UISearchBar 初始化 UISearchController,甚至无法设置 searchBar,因为它是只读属性。 我想我真正的问题是,我有哪些选择? 在没有 UISearchDisplayController 或 UISearchController 的情况下,是否有一种“好”的方法来实现搜索? 回答1 使用 UISearchDisplayController,这很简单:创建一个 UISearchBar 并将其添加到自定义 UICollectionView
  • Android上的MVC模式(MVC pattern on Android)
    问题 是否可以在Android版Java中实现模型-视图-控制器模式? 还是已经通过活动实施了? 还是有更好的方法来为Android实现MVC模式? 回答1 在Android中,您没有MVC,但是您具有以下条件: 您可以通过分辨率,硬件等在各种XML文件中定义用户界面。 您可以通过语言环境等在各种XML文件中定义资源。 您可以扩展诸如ListActivity,TabActivity之类的类,并通过充气机来使用XML文件。 您可以根据需要为业务逻辑创建任意多个类。 已经为您编写了许多实用程序-DatabaseUtils,Html。 回答2 没有普遍唯一的MVC模式。 MVC是一个概念,而不是一个可靠的编程框架。 您可以在任何平台上实现自己的MVC。 只要您坚持以下基本思想,就可以实现MVC: 模型:要渲染的内容视图:如何渲染控制器:事件,用户输入 也可以这样考虑:在对模型进行编程时,模型不必担心渲染(或特定于平台的代码)。 该模型将对视图说,我不在乎您的渲染是Android还是iOS或Windows Phone,这就是我需要渲染的东西。 该视图将仅处理特定于平台的呈现代码。 当您使用Mono共享模型以开发跨平台应用程序时,这特别有用。 回答3 Android上的动作,视图和活动是使用Android UI的固有方法,并且是model-view-viewmodel(MVVM)模式的实现
  • Swift 中的 TableView 搜索(TableView search in Swift)
    问题 我有两个数组:FirstTableArray(包括品牌名称)和 SecondTableArray(包括模型)。 我想添加搜索,通过它可以通过名称的一部分找到手机型号。 import UIKit import MessageUI class FirstTableViewController: UITableViewController { var FirstTableArray = [String]() var SecondTableArray = [SecondTable]() override func viewDidLoad() { super.viewDidLoad() self.navigationController?.navigationBar.isTranslucent = false self.navigationController?.navigationBar.barStyle = .black self.navigationController?.navigationBar.tintColor = UIColor.white // First Table Array FirstTableArray = ["Apple", "Samsung"] // Second Table Array SecondTableArray = [ SecondTable
  • 将 AdMob 广告放在 tableview 控制器的底部 - swift(Place AdMob ad at the bottom of tableview controller - swift)
    问题 我一直在尝试在 swift 上实现 Admob,一切都很好,但是我遇到了问题,因为我使用自定义表格视图单元格和“表格视图控制器”作为主要的 swift 文件,所以当我将 BannerView 拖入作为表格视图控制器的故事板,广告实际上出现在表格视图的第一个单元格中! 相反,我需要在表格视图控制器的按钮上而不是在单元格内加载它? @IBOutlet weak var bannerView: GADBannerView! override func viewDidLoad() { super.viewDidLoad() self.bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716" self.bannerView.rootViewController = self var request: GADRequest = GADRequest() request.testDevices = [GAD_SIMULATOR_ID] self.bannerView.loadRequest(request) // Uncomment the following line to preserve selection between presentations // self
  • 使用 ObservableCollection 时 ,我还需要在类型 T 上实现 INotifyPropertyChanged 吗?(When using ObservableCollection<T>, do I still need to implement INotifyPropertyChanged on type T?)
    问题 ObservableCollection<T> 的 MSDN 参考页面指出: “您的集合中的对象必须满足绑定源概述中描述的要求。特别是,如果您正在使用 OneWay 或 TwoWay(例如,您希望您的 UI 在源属性动态更改时更新),您必须实现一个合适的属性更改通知机制,例如 INotifyPropertyChanged 接口。” 由于ObservableCollection<T>已经实现了INotifyPropertyChanged ,为什么我还需要在T上再次实现INotifyPropertyChanged ? 回答1 将您的 observable 集合视为表的数据源。 集合中的每个对象占据一行,并跨多列显示在表格中。 视图(即您的表格)需要知道何时修改每个单元格以响应对象属性的变化,以及响应向集合中添加和删除对象。 您的 observable 集合负责处理表行:当对象被插入、删除、移动等时,它会通知它的观察者。 但是,它缺乏对单个对象发生情况的了解,因此在处理表列方面没有帮助。 这就是您的对象的INotifyPropertyChanged :通过实现INotifyPropertyChanged它们让您的表管理列中的数据。 回答2 INotifyPropertyChanged需要由其属性正在更改的对象引发。
  • 3D点云综述
    转载请注明作者和出处: http://blog.csdn.net/john_bh/ 论文链接:Deep Learning for 3D Point Clouds: A Survey 作者及团队:国防科大 & 中山大学 & 牛津大学 会议及时间: Arxiv 2019 code:https://github.com/QingyongHu/SoTA-Point-Cloud 文章目录 Abstract 1.Introduction2.3D形状分类2.1 基于投影的网络2.1.1多视图表示2.1.2体积表示 2.2 基于点的网络2.2.1点对点MLP网络2.2.2基于卷积的网络2.2.3基于图的网络2.2.4基于数据索引的网络2.2.5其他网络 3.3D对象检测与跟踪3.1 3D对象检测3.1.1基于地区提案的方法3.1.2 Single Shot Methods 3.2 3D对象跟踪3.3 3D场景流估计3.4 小结 4.3D点云分割4.1 3D语义分割4.1.1基于投影的网络4.1.2基于点的网络 4.2 实例细分4.2.1基于提案的方法4.2.2 Proposal-free Methods 4.3 Part Segmentation4.4小结 5.结论 Abstract 由于点云学习在计算机视觉,自动驾驶和机器人等许多领域的广泛应用,近来引起了越来越多的关注
  • iOS-带情节提要的UISplitViewController-多个主视图和多个详细视图(iOS - UISplitViewController with storyboard - multiple master views and multiple detail views)
    问题 我正在尝试使用UISplitViewController和情节提要组合一个iPad应用程序。 主视图从链接到具有6个菜单选项的表格视图的导航控制器开始。 表格中的每个单元格将一个不同的表格视图控制器推入导航堆栈。 对于主视图,这工作正常。 每个主视图都有一个表列表,单击该列表时需要在详细信息窗格中显示不同的视图控制器。 我目前已通过将segue设置为“替换”和“详细信息拆分”来完成此操作,这在第一次单击某行时起作用,但是一旦您在主视图中单击另一行或旋转设备,该应用就会崩溃与EXC_BAD_ACCESS。 我相当确定我的问题与如何为UISplitViewController设置委托有关。 当我有多个主VC和多个明细VC时应该如何使用它,我感到困惑。 委托代码应放在何处-主代码或明细数据? 我是否必须在每个视图控制器中实现UISplitViewControllerDelegate协议事件? 任何帮助表示赞赏。 回答1 如果拆分视图控制器委托是已替换的详细视图控制器,则这是导致崩溃的原因。 替换的详细信息视图控制器将被取消分配,因此拆分视图控制器委托不再是对有效对象的引用。 您可以在prepareForSegue:sender:中更新委托。 例如: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id
  • -didSelectRowAtIndexPath:不被调用(-didSelectRowAtIndexPath: not being called)
    问题 我正在写一个带有选项卡视图内的表格视图的iOS应用。 在我的UITableViewController ,我实现了-tableView:didSelectRowAtIndexPath:但是当我在运行时选择一行时,不会调用该方法。 虽然正在填充表视图,所以我知道正在调用控制器中的其他tableView方法。 有谁知道我可能为实现这一目标而搞砸了什么? 回答1 听起来好像该类不是该表视图的UITableViewDelegate ,尽管UITableViewController应该自动设置该类。 您是否有可能将代表重置为其他班级? 回答2 万一有人犯了和我一样的愚蠢错误: 看看,如果你希望成为什么样的方法名didSelect可能会意外地得到didDeselect以某种方式。 我花了大约两个小时才找到... 回答3 可能导致问题的另一件事不是选定的选择类型: 应该是Single Selection正常的选择,不应该是No Selection 。 要以编程方式执行此操作,请执行以下操作: tableView.allowsSelection = YES 回答4 另一个可能性是UITapGestureRecognizer可能正在吞噬事件,如此处所示:https://stackoverflow.com/a/9248827/214070 我没有怀疑这是因为,表格单元格仍然会突出显示蓝色
  • 代表们,我无法绕过他们(Delegates, can't get my head around them)
    问题 嘿,我正在寻找有关代表的有用资源。 我了解到,委托人坐在后台,并在某些情况发生时接收消息-例如,选择了表格单元格,或检索了来自网络连接的数据。 我特别想知道的是如何将委托与多个对象一起使用。 据我所知,为对象(例如表单元格)指定相同的委托将导致同时为两个单元格调用相同的事件。 有什么等效于为特定对象实例化委托的? 提前致谢! 回答1 在可可中,对象几乎总是在调用委托方法时标识自己。 例如,UITableView在调用它时将自身作为委托消息的第一个参数传递: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 如果您希望同一个委托处理多个UITableView,则只需要对传递给该方法的tableView对象进行一些条件处理: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (tableView == self.myFirstTableView) { // do stuff } else if (tableView == self.mySecondtableView) { // do other stuff
  • 强制触摸 UITableViewCell 内的 UICollectionView(Force touch on UICollectionView inside of UITableViewCell)
    问题 我有一个带有 Tableview、多个 TableViewCells 的 viewController,并且在每个 TableViewCell 中有一个带有多个 UICollectionViewItems 的 UICollectionView。 每个 collectionView 项目都有一个标签和图像视图。 我正在尝试让 3d touch 工作,以便用户通过强制触摸不包含集合视图的 tableCell 区域进行窥视和弹出,预览并弹出到一个视图控制器中,然后能够执行与 collectionView 中的一个图像相同,但预览并弹出到不同的视图控制器中。 我的第一个场景工作正常,当开始强制触摸和“偷看”时,tableCell 在屏幕上保持清晰。 我一直坚持让它在集合视图中工作,无论我做什么,只有一个图像视图框架在第一个 tableview 行上保持清晰,而不管我实际按下哪一行。 代码如下: func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { //get the tableviewCell if let tableCellPath = tableView
  • 2020学术会议回顾:从这些最佳论文中一窥研究趋势
    2020 年,是充满变化的一年。人工智能学术会议也不例外,线上举办、改革评审制度、增加可复现性要求、伦理要求等,这些是「变」。而不变的是大家对学术会议的热情,以及我们总能透过这些会议探究学术前沿发展趋势。今天,我们就从各大顶会的最佳论文中一窥当前研究热点和趋势。AAAI 2020最佳论文:WinoGrande: An Adversarial Winograd Schema Challenge at Scale论文链接:https://arxiv.org/abs/1907.10641简介:维诺格拉德模式挑战赛(Winograd Schema Challenge:WSC)是一个用于常识推理的基准测试,该测试有 273 个专家编写的问题,专门应对依赖选择偏好和词语联想的统计学模型。但是近来,许多模型在该基准测试的性能已达到 90%。因此,研究者希望了解,这些模型是否真正获得了鲁棒的常识能力。因此,研究者提出了 WINOGRANDE,一个有着 44k 个问题的大规模数据集。该数据集在规模和难度上较之前的数据集更大。该数据集的构建包括两个步骤:首先使用众包的方式设计问题,然后使用一个新的 AFLITE 算法缩减系统偏见(systematic bias),使得人类可以察觉到的词汇联想转换成机器可以检测到的嵌入联想(embedding association)。现在最好的 SOTA
  • [3D点云语义分割-论文] 综述
    文章目录 Deep Learning for 3D Point Clouds: A Survey 翻译Abstract1. INTRODUCTION2 3D形状分类2.1基于投影的网络2.1.1多视图表示2.1.2体素表示 2.2基于点的网络2.2.1逐点MLP网络2.2.2 基于卷积的网络2.2.3 基于图的网络2.2.4 基于数据索引的网络2.2.5 其他网络 3 3D目标检测和跟踪3.1 3D对象检测3.1.1 基于区域提案的方法3.1.2 single-shot方法 3.2 3D对象跟踪3.3 3D场景流估计3.4 总结 4 3D 点云分割4.1 3D 语义分割4.1.1基于投影的网络4.1.2基于点的网络 4.2 实例分割4.3 零件分割4.4 总结 5 总结REFERENCES Deep Learning for 3D Point Clouds: A Survey 翻译 Y ulan Guo∗, Hanyun Wang∗, Qingyong Hu∗, Hao Liu∗, Li Liu, and Mohammed Bennamoun 2019.12 Abstract ​ 点云学习由于其在计算机视觉、自动驾驶、机器人等领域的广泛应用,近年来受到越来越多的关注。深度学习作为人工智能领域的主流技术,已经成功地应用于解决各种二维视觉问题。然而
  • 用于以编程方式创建的 tableview 的惰性称重单元图像(Lazy Load cell image for programmatically created tableview)
    问题 我正在以编程方式创建许多表视图。 客户端特别要求布局不是 UITableView 控制器。 就像是: tableview 的数量以及每个 table 中的项目数量各不相同。 所有的表都是在视图加载时创建的。 我想为表格视图中的单元格添加缩略图。 我需要找到一种延迟加载缩略图的方法。 我已经成功地在 UITableViewController 上实现了延迟加载。 我之前的成功部分是因为我可以使用 [tableview reloadData] 调用来指示可以在缓存图像后显示单元格缩略图。 我如何对以编程方式创建的 tableviews 实现延迟加载? 我最初的想法是在表格视图中添加某种选择器,以便在为特定单元格缓存图像后更新单元格。 我不确定这将如何工作,并希望得到任何帮助。 以下是我用来以编程方式创建表视图的代码(我使用的是 ARC): @interface SyllabusSegmentedViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> @property (nonatomic, weak)IBOutlet UIScrollView *SyllabusSegmentedSV; —— @implementation
  • 适用于IOS的最佳单选按钮实现(Best radio-button implementation for IOS)
    问题 我想问一下是否存在有关如何在iPhone应用程序上实现单选按钮选项的示例。 对于简单的选择功能,我发现Picker View很大。 我不确定Apple是否故意排除了单选按钮,以及从可用性/用户体验的角度简单使用Picker View是否更好。 回答1 我对最佳单选按钮实现的外观有一些想法。 它可以基于UIButton类,并使用其“已选择”状态来指示组中的一个。 UIButton在IB中具有本机自定义选项,因此可以方便地设计XIB。 还应该有一种使用IB插座连接来对按钮进行分组的简单方法: 我已经在RadioButton类中实现了自己的想法。 奇迹般有效: 下载示例项目。 回答2 尝试UISegmentedControl。 它的行为类似于单选按钮-呈现一系列选择并让用户选择1。 回答3 只是想总结一下,可能有4种方法。 如果没有足够的空间,请为文本或按钮添加click事件,然后显示UIPickerView: 或使用复选标记打开新的表格视图控件: 如果有更多空间,请将表视图直接添加到主视图中: 最终的解决方案是使用UISegmentedControl: 希望这可以帮助。 回答4 尝试DLRadioButton,它适用于Swift和ObjC 。 您还可以使用图像指示选择状态或自定义样式。 在GitHub上进行检查。 **更新:添加了将选择指示器置于右侧的选项。 **更新
  • CVPR 2021 Multi-view 3D Reconstruction with Transformer
    动机 基于深度CNN的方法在多视图3D物体重建方面达到了SOTA水平。 从多视图图像中学习3D物体的表示是3D建模、虚拟现实和计算机动画中的一个基本而又具有挑战性的问题。近年来,深度学习方法极大地促进了多视图3D重建问题的研究,其中基于深度卷积神经网络(CNN)的方法在该任务中达到了SOTA水平。 尽管取得了相当大的进展,但这些方法的两个核心模块,即多视图特征提取和融合通常是单独考察的,很少探究不同视图中的目标关系。 为了从多个输入视图中学习有效的3D表示,大多数基于CNN的方法遵循分而治之的设计原则,其中通常的做法是引入CNN进行特征提取和融合模块来集成多个视图的特征或重建得到。尽管这两个模块之间有很强的关联,但它们的方法设计是分开研究的。另外,在CNN特征提取阶段,很少研究不同视图中的目标关系。虽然最近的一些方法引入了递归神经网络(RNN)来学习不同视图之间的目标关系,但这种设计缺乏计算效率,而且RNN模型的输入视图是对顺序变化敏感的,难以与一组无序的输入视图兼容。 在基于CNN的多视图3D重建方法中,设计一个既能探索视图之间深层关系,又能保持排列不变能力的融合模型仍然是一个困难的任务。Transformer在多视角3D重建中的一个天然优势是,其令牌嵌入可以无序地一层一层的做抽象学习。 近年来的研究也表明,基于CNN的重建方法可能存在模型缩放问题。 例如,当模型输入超过一定规模
  • 单击 UITableViewCell 中的 UITextField(Clicking on UITextField in a UITableViewCell)
    问题 我有一个问题,当在UITableViewCell单击textField时,方法tableView:didSelectRowAtIndexPath:不会被调用。 问题是,我需要将我的tableView滚动到适当的位置,否则键盘会直接越过第一响应者。 然后我必须像这样移动代码: [[self tableView] scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES]; 进入我的tableView委托方法和我的UITextField委托方法textFieldDidBeginEditing: 。 是创建一个新方法、将单击的单元格/文本字段的 indexPath 传递给它并从 tableView 委托和UITextField委托调用该方法的最佳方法吗? 更好的方法是什么? 回答1 我发现以下效果很好(假设您在表视图控制器中) - (void)textFieldDidBeginEditing:(UITextField *)textField{ CGPoint pnt = [self.tableView convertPoint:textField.bounds.origin fromView:textField]; NSIndexPath* path =
  • 2020CVPR人体姿态估计论文盘点
    Hey,今天总结盘点一下2020CVPR论文中涉及到人体姿态估计的论文。人体姿态估计分为2D(6篇)和3D(11篇)两大类。 2D 人体姿态估计 [1].UniPose: Unified Human Pose Estimation in Single Images and Videos 作者 | Bruno Artacho, Andreas Savakis 单位 | 罗切斯特理工学院 摘要:我们提出了一个统一的人体姿态估计框架UniPose,它基于我们的“瀑布式”萎缩空间池架构,在多个姿态估计指标上取得了state-of-art结果。单姿态合并率上下文分割和联合定位在一个阶段内估计人体姿态,精度高,不依赖统计后处理方法UniPose中的瀑布模块利用了级联结构中渐进式过滤的效率,绘制可与空间金字塔结构相媲美的多尺度视野。此外,我们的方法扩展到单姿态LSTM进行多帧处理,并获得了视频中时间姿态估计的最新结果。我们在多个数据集上的结果表明,具有ResNet主干网和瀑布模型的UniPose是一个健壮而有效的姿势估计体系结构,可获得单人姿势检测的state-of-the-art. 一种不需要后处理的单人姿态估计方法,可扩展到视频 [2].The Devil Is in the Details: Delving Into Unbiased Data Processing for Human
  • 如何在不使用情节提要的情况下在UITableView中使用静态单元格?(How to use static cells in UITableView without using Storyboards?)
    问题 我的项目中已有一个ViewController + xib,现在我想添加一个带有静态单元格的UITableView,如下所示: 但是,当我将UITableView拖到屏幕上时,属性检查器中没有“内容>静态”菜单。 我尝试使我的控制器子类成为UITableViewController,但这无济于事-我仍然没有获得在Attributes Inspector中使用静态单元格的选项。 我环顾了StackOverflow,但没有找到任何有关该问题的答案。 现有的所有问题都与情节提要板(我没有使用)有关,而不是xib文件。 我的猜测是,当您将UITableViewController添加到情节提要中时,Xcode起到了某种神奇的作用,但是当您更改现有的xib以从UITableViewController继承时,Xcode不会起到某种作用。 关于如何将具有静态单元格的表视图添加到现有xib的任何建议? 回答1 静态表格视图单元格仅在使用情节提要时可用。 但是,如果您没有在整个UI中使用情节提要,则仍可以将其用于单个屏幕,而不是用于屏幕的集合。 为此,您可以创建一个具有单个视图控制器的UIStoryboard文件,该文件的File Owner设置为您的自定义视图控制器子类。 将VC的标识符设置为某个值。 当您要显示此内容时,获取情节提要,然后通过从情节提要中创建VC实例化视图控制器子类。
  • 如何在像 3x3 表格一样对齐的视图中添加 UIView 子视图(How to add UIView subviews in a view aligned like 3x3 table)
    问题 我创建了一个主视图,并在其中添加了从 UIView 子类化的 9 个 UIMyView。 我使用 NSBundle 添加该 UIMyViews 的实例以加载 nib 文件并在主视图控制器中添加子视图,当然所有这些视图都出现在超级视图的左上角,一个隐藏另一个,最后一个可见,我需要使用超级视图中的点以某种方式定位它们,或者创建类似表格的东西并将 UIMyViews 添加到其单元格中?! 想象一下,您有一张桌子,并在 3 行 3 列(9 张卡)中放置了 9 张套牌。 这是我需要实现的目标。 [编辑] 检查这张图片:http://www.wpclipart.com/recreation/games/card_deck/cards_symbols/playing_card_symbols.png 我只需要 3 行 3 列。 任何人都可以建议这种操作的最佳实践吗? 之后只是记住我想在拖动,触摸和重新排序等时在这些 UIMyViews 上实现各种动画和效果。 谢谢你。 回答1 如果要遍历所有视图并将它们放置在网格中,可以这样: // Array of 9 views NSArray *views = [NSArray arrayWithObjects:[[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)], [[UIView
  • UITableViewCell中的UICollectionView —动态高度?(UICollectionView inside a UITableViewCell — dynamic height?)
    问题 我们的应用程序屏幕之一要求我们将UICollectionView放在UITableViewCell 。 此UICollectionView将具有动态数量的项目,导致高度也必须动态计算。 但是,我在尝试计算嵌入式UICollectionView的高度时遇到了问题。 我们的总体UIViewController是在情节提要中创建的,并且确实利用了自动布局。 但是,我不知道如何基于UICollectionView的高度动态增加UITableViewCell的高度。 谁能给一些技巧或建议,以实现这一目标? 回答1 正确的答案是肯定的,你可以做到这一点。 几周前我遇到了这个问题。 实际上,它比您想象的要容易。 将您的单元格放入NIB(或情节提要)中,然后将其固定以让自动布局完成所有工作 给出以下结构: 表格检视 TableViewCell 集合视图 CollectionViewCell CollectionViewCell CollectionViewCell [...可变的细胞数或不同的细胞大小] 解决方案是告诉自动布局首先计算collectionViewCell的大小,然后计算集合视图的contentSize,并将其用作单元格的大小。 这是“做魔术”的UIView方法: -(void)systemLayoutSizeFittingSize:(CGSize)targetSize