热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

快速重新创建iOS13的共享表单模式(不是共享表单本身,而是呈现方式)

如何解决《快速重新创建iOS13的共享表单模式(不是共享表单本身,而是呈现方式)》经验,为你挑选了2个好方法。

有没有一种方法可以轻松地重新创建ios 13的新共享表的模式表示样式?(起初,它只是中途显示,您可以向上滑动以使其成为“完整的”模态表)。我可以使用完全自定义的显示形式和内容来做到这一点,但是对于此行为是否有“本机” API,因此您不必不必使用自定义代码?

谢谢!



1> Subramanian ..:

这是我尝试过的。我创建了一个新的ViewController类,扩展了UIActivityViewController。在viewDidLoad函数中,我从控制器中删除了所有子视图,并将其viewController作为子视图添加到该控制器中。它似乎工作正常。虽然,这更多的工作还是可以满足看起来的要求。代码段如下。试试看。

import UIKit

class CustomActivityViewController: UIActivityViewController {

    private let controller: UIViewController!

    required init(controller: UIViewController) {
        self.cOntroller= controller
        super.init(activityItems: [], applicationActivities: nil)
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        let subViews = self.view.subviews
        for view in subViews {
            view.removeFromSuperview()
        }

        self.addChild(controller)
        self.view.addSubview(controller.view)
    }

}

上面是CustomActivityViewController。您可以按如下所示将viewController添加到其中。

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let cOntroller= storyboard.instantiateViewController(withIdentifier: "YourViewController")
let activityViewCOntroller= CustomActivityViewController(controller: controller)
self.present(activityViewController, animated: true, completion: nil)


苹果的UIActivityViewController本身只是一个UIViewController,仅在所有内容的结尾。而且它们本身仅提供了一种将viewController作为子级添加到另一个viewController的方法。因此,使用这些东西来实现我们所需的东西时,我没有发现任何错误或违法行为。
请谨慎使用此方法。覆盖Apple的私有视图层次结构的问题之一是必须执行布局时的未定义状态。例如,当用户界面更改,后台更改,后台运行时卸载应用程序等。

2> Leo Natan--r..:

如果您对私有API感兴趣,这就是Apple的方法:

有一个名为的类_UISheetDetent。使用此类,您可以创建系统定义的“定位器”(中型和大型),也可以提供自己的基于块的逻辑(输入参数是表示控制器的容器视图,返回值是双精度值)-打开工作表的百分比)。

您创建这些“定位器”的数组,并使用_setDetents:方法(或setValue:forKey:)将它们提供给工作表显示控制器。要复制共享表行为,您需要一个带有两个“定位器”的数组:中型和大型。

还有一个_indexOfLastUndimmedDetent属性,它控制哪个“定位器”启动调光过程。

我不确定为什么苹果没有将其公开为公共API。它简洁,简单且效果很好。

可能不应该使用此API,但是如果决定使用它,则隐藏起来应该非常容易。无论如何,请确保与Apple打开反馈,以在以后的SDK版本中公开此API。


推荐阅读
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • C++语言入门:数组的基本知识和应用领域
    本文介绍了C++语言的基本知识和应用领域,包括C++语言与Python语言的区别、C++语言的结构化特点、关键字和控制语句的使用、运算符的种类和表达式的灵活性、各种数据类型的运算以及指针概念的引入。同时,还探讨了C++语言在代码效率方面的优势和与汇编语言的比较。对于想要学习C++语言的初学者来说,本文提供了一个简洁而全面的入门指南。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • imnewtotheswiftandxcodeworld,soimhavingaproblemtryingtointegrateapackagetomypro ... [详细]
  • 这篇文章主要讲解了“如何应对Android面试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何应对 ... [详细]
  • 1、DashAPI文档Dash是一个API文档浏览器,使用户可以使用离线功能即时搜索无数API。程序员使用Dash可访问iOS,MacOS, ... [详细]
  • elixirerlang通过AyandaDubeFIPS(联邦信息处理标准)[1]是由NIST(美国国家标准技术研究院)定义 ... [详细]
  • 于2012年3月份开始接触OpenStack项目,刚开始之处主要是与同事合作共同部署公司内部的云平台,使得公司内部服务器能更好的得到资源利用。在部署的过程中遇到各种从未遇到过的问题 ... [详细]
  • 我正在使用NavigatonView和NavigationLink,我的观点是这样的:ScrollView{VStack ... [详细]
  • position属性absolute与relative的区别和用法详解
    本文详细解读了CSS中的position属性absolute和relative的区别和用法。通过解释绝对定位和相对定位的含义,以及配合TOP、RIGHT、BOTTOM、LEFT进行定位的方式,说明了它们的特性和能够实现的效果。同时指出了在网页居中时使用Absolute可能会出错的原因,即以浏览器左上角为原始点进行定位,不会随着分辨率的变化而变化位置。最后总结了一些使用这两个属性的技巧。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了Java的公式汇总及相关知识,包括定义变量的语法格式、类型转换公式、三元表达式、定义新的实例的格式、引用类型的方法以及数组静态初始化等内容。希望对读者有一定的参考价值。 ... [详细]
  • 本文讨论了微软的STL容器类是否线程安全。根据MSDN的回答,STL容器类包括vector、deque、list、queue、stack、priority_queue、valarray、map、hash_map、multimap、hash_multimap、set、hash_set、multiset、hash_multiset、basic_string和bitset。对于单个对象来说,多个线程同时读取是安全的。但如果一个线程正在写入一个对象,那么所有的读写操作都需要进行同步。 ... [详细]
  • 本文介绍了一种图片处理应用,通过固定容器来实现缩略图的功能。该方法可以实现等比例缩略、扩容填充和裁剪等操作。详细的实现步骤和代码示例在正文中给出。 ... [详细]
author-avatar
我_纯情至上
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有