如何使用 iOS 7 自定义过渡在顶部呈现半模态视图控制器

2024-04-20

我将如何在主视图控制器的顶部呈现“半视图”控制器?

要求: - 呈现在主视图控制器顶部滑动的第二个视图控制器。 - 第二个视图控制器应该只显示主视图控制器的一半以上 - 主视图控制器应在第二视图控制器后面保持可见(透明背景,下面不显示黑色) - 第二个视图控制器应使用类似于模式垂直覆盖或 iOS 7 自定义过渡的动画进行动画处理 - 当第二个视图控制器处于活动状态时,用户仍然可以与主视图控制器上的按钮进行交互(即第二个视图控制器不覆盖整个主视图控制器) - 第二个视图控制器有自己的复杂逻辑(不能是简单的视图) - 故事板、Segues、仅限 iOS 7 - 仅限 iPhone,不适用于 iPad。

我尝试过使用模态视图控制器,但这不允许与主视图控制器交互。有人可以提供一个示例,说明如何使用 iOS7 自定义转换或其他方法来执行此操作。


一种方法是将“半模态”控制器添加为子视图控制器,并将其视图动画到位。对于本示例,我在故事板中创建了“半模态”控制器,其框架的高度为 4 英寸 iPhone 屏幕的一半。您可以使用更动态的方法来考虑不同的屏幕尺寸,但这应该可以帮助您入门。

@interface ViewController ()
@property (strong,nonatomic) UIViewController *modal;
@end

@implementation ViewController


- (IBAction)toggleHalfModal:(UIButton *)sender {
    if (self.childViewControllers.count == 0) {
        self.modal = [self.storyboard instantiateViewControllerWithIdentifier:@"HalfModal"];
        [self addChildViewController:self.modal];
        self.modal.view.frame = CGRectMake(0, 568, 320, 284);
        [self.view addSubview:self.modal.view];
        [UIView animateWithDuration:1 animations:^{
            self.modal.view.frame = CGRectMake(0, 284, 320, 284);;
        } completion:^(BOOL finished) {
            [self.modal didMoveToParentViewController:self];
        }];
    }else{
        [UIView animateWithDuration:1 animations:^{
            self.modal.view.frame = CGRectMake(0, 568, 320, 284);
        } completion:^(BOOL finished) {
            [self.modal.view removeFromSuperview];
            [self.modal removeFromParentViewController];
            self.modal = nil;
        }];
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 iOS 7 自定义过渡在顶部呈现半模态视图控制器 的相关文章

  • iOS 9 的 UIAlertView 的替代方案?

    UAlertView在 iOS 9 及更高版本中已弃用 有什么替代方案吗 UIAlertView new UIAlertView alloc initWithTitle Success message Your InApp Purchase
  • iOS 的 WiFi 连接通知,包括 SSID

    新手 IOS 程序员正在寻找一种在 iPhone 连接到 WIFI 网络时收到通知的方法 IE 关于以下转换的通知 3G转WIFI WIFI转3G WIFI 到另一个 WIFI 它应该能够知道我连接到哪个 SSID 在 Android 上花
  • 使用iOS类别创建新颜色

    我想创造一些新的UIColor我的应用程序中始终使用的 s RGB 有时会稍微调整 确切的颜色阴影正在争论中 目前 我必须从 RGB 创建新颜色 并且代码遍布各处并重复 有没有更好的方法可以创建一种新的颜色并在我的应用程序中使用它 UICo
  • 无法在 Swift 3 / iOS 10 中触发 continueUserActivity

    注意 我已经弄清楚了大部分内容 请参阅最后的更新 还是有些迷茫 我正在尝试在 Swift 3 下的 Xc8b6 中实现 NSUserActivity 处理 但处理程序协议方法的方法签名遇到问题 在当前的文档中 该方法据说是 func app
  • iOS中如何以url的形式发布数据?

    我想将 UITextfields 数据发送到服务器 我想发布数据 但服务器向我显示错误消息 请检查我的代码 NSURL url NSURL URLWithString http projectsatseoxperts net au fish
  • iOS 中的设备兼容性问题

    我们上传了一个应用程序 在第一个版本中 我们添加了设备功能 电话 以限制信息 plist 中的 iPhone 设备 在第二个版本中 我们忘记添加 电话 并提交给了应用商店 我们计划上传第三个版本 其中设备功能为 电话 但在提交到 App S
  • 仅当捏住单元格的 imageView 时,才可以在 UICollectionView 的自定义单元格中放大/缩小 UIImageView 吗?

    我有一个 CollectionView 它有一个自定义单元格 我想放大 缩小单元格中的 imageView 所以我在 CollectionView m 添加捏合手势 当我向 self collectionView 添加手势时 如下所示 se
  • 如何在 UIStackView 中垂直和水平居中

    I have a simple UIImageView with 50x50 size If I had a UIView of size 100x100 and I wanted to center the image inside of
  • Cordova 插件不适用于 Ionic

    我正在 Angular 中构建一个 Ionic 应用程序 但一直无法让插件工作 例如 我尝试使用状态栏插件 如下所述 http ionicframework com tutorials fullscreen apps http ionicf
  • iOS 12.1 上的 UITabBar 项目在返回导航上跳跃

    我有一个 iOS 应用程序UITabBarController在主屏幕上 导航到隐藏的详细信息屏幕UITabBarController有设置hidesBottomBarWhenPushed true 返回主屏幕时UITabBarContro
  • 生成具有给定分布的随机数

    看看这个问题 快速选择随机数的概率 https stackoverflow com questions 26092977 swift probability of random number being selected 最上面的答案建议使
  • Swift 2:IBOutlet 集合 [UIButton]!内存泄漏

    最近在我的应用程序中 我发现我的 UIButton 出口集合正在泄漏内存 我所拥有的只是 IBOutlet var TabBarButtons UIButton And from Instrument 谁能告诉我出了什么问题吗 随着时间的推
  • 你可以将 UIGestureRecognizer 附加到多个视图吗?

    UITapGestureRecognizer tapGesture UITapGestureRecognizer alloc initWithTarget self action selector tapTapTap self view1
  • 如何在 Swift 2.0 中将结构保存到 NSUserDefaults

    我有一个名为Jar我想将它们的数组保存到 NSUserDefaults 中 这是 jar 结构代码 struct Jar let name String let amount Int init name String amount Int
  • 以编程方式在 UIBarButtonItem 上设置辅助功能标识符

    可访问性标识符是开发人员为 GUI 对象生成的 ID 可用于自动化测试 A UIBarButtonItem不执行UIAccessibilityIdentification 但是 我是否可以分配一个辅助功能标识符 你可以子类化UIBarBut
  • 如何在 SwiftUI 中导航到另一个视图时消除动画故障

    当导航到 SwiftUI 中包含列表的视图时 模拟器和真实设备上都会出现动画故障 就在导航动画结束时 列表项似乎 跳 了几个像素到其指定位置 请参阅以下简单示例 内容视图 struct ContentView View var body s
  • 使用 Box2d 拖放 UIViews (iOS) [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我最近发现了一个很好的教程 用于使用
  • 可以在 iOS 应用程序中全局禁用旋转吗?

    我有一个由很多视图控制器组成的应用程序 在项目摘要中 我已将纵向方向设置为唯一支持的设备方向 然而 该应用程序在横向旋转时仍然会变得混乱 我的问题是 有没有办法通过应用程序委托或其他方式全局禁用自动旋转 或者我是否必须进入所有视图控制器并添
  • 如何更改 UIImage 的颜色? [复制]

    这个问题在这里已经有答案了 我不想改变图像的背景颜色 而是改变整个图像的颜色 但问题是 我只能改变backgroundColor 接受的答案是正确的 但还有更多easy way for UIImageView Obj C UIImage i
  • iOS:iOS 4.3 和 5.0 之间不同的 addSubview 行为

    之前在 iOS 4 3 中编码时 我发现将视图控制器的视图添加到另一个视图时 superview addSubView controller view 控制器实例将不会收到 viewWillAppear viewDidAppear消息 比我

随机推荐

  • Visual Studio 2013 浏览器链接无法在 Firefox 中正常运行 - 引发异常

    刚才我在调试一个简单的 ASP NET MVC 应用程序时尝试使用 Firefox 27 0 1 进行浏览器链接 我有 Visual Studio Ultimate 2013 Update 1 这是浏览器链接仪表板 我尝试在剃刀视图中更改某
  • 正则表达式中的波形符运算符

    我想知道正则表达式中波浪线运算符的含义是什么 我有这样的声明 if preg match d 10 POST isbn warnings ISBN should be 10 digits 我发现这个文档解释了波浪号的含义 http en a
  • 如何向角度垫表添加边框半径?

    我正在努力使mat table边框为圆形 但它不起作用 试过这个 table width 100 border collapse collapse border radius 1em 如何实现这一目标 对我来说最简单的解决方案是隐藏某些元素
  • Laravel 1048 存储数据时列不能为 NULL

    当我尝试保存新联系人时 我收到1048 Column username cannot be NULL错误 很明显 这个错误的原因是空值username 但是我想让它工作而不将列设置为 NULL 或检查是否usernamePOST 数据为空
  • Boost Spirit 规则和语法中模板参数中的括号

    看着这个例子 http boost spirit com home articles qi example parsing a list of key value pairs using spirit qi 为了实现 Spirit 解析器
  • 复制期间的字节交换

    我需要有效地交换数组的字节顺序during复制到另一个数组中 源数组是某种类型 char short 或 int 因此所需的字节交换是明确的 并且将根据该类型进行 我的计划是通过多遍字节复制 short 为 2 int 为 4 来非常简单地
  • 如何使用 GCM 在 php 中向数百万 Android 设备发送通知

    我是一名新的 Android 应用程序开发人员 我正在使用 GCM 将 PHP 代码的通知发送到 Android 设备 我制作了所有设备 ID 的数组并发送 但问题是当我发送超过一千个设备时 我发现内部服务器错误 我的代码如下 functi
  • 未定义的方法`fog_host='

    当我尝试运行我的应用程序时 出现以下错误 config initializers carrierwave rb 4 未定义方法 fog host CarrierWave Uploader Base Class NoMethodError 这
  • JavaFX GridPane:如果内容被禁用且不可见则缩小

    如果 GridPane 行的内容既禁用又不可见 是否可以缩小该行 当我将节点设置为disable true和visible false时 单元格仍然占用空间 如果我有 8 行 并且只有第一行和最后一行可见 我不希望空行占用太多空间 好像只有
  • OpenGL 超级采样抗锯齿?

    在办公室 我们正在使用旧的 GLX Motif 软件 该软件使用 OpenGL 的 AccumulationBuffer 来实现保存图像的抗锯齿功能 我们的问题是Apple从其所有驱动程序中删除了AccumulationBuffer 从OS
  • 如何为所有用户设置所有 ulimit 不受限制?

    是的 我想删除all ulimits并将它们设置为unlimited 我该怎么做呢 谢谢 使用这样的东西 for opt in ulimit a sed s a z a zA Z 1 do ulimit opt ulimited done
  • Android中如何增加ScrollView的高度?

    嗨朋友们 我在用GridView里面一个ScrollView用于显示图像 在 GridView 中 我有 16 个动态添加的图像 但是ScrollView不显示全部 16 张图像 参见屏幕截图 我想要ScrollView显示整体GridVi
  • C#:运行 shell 命令时出现问题

    我试图让 PHP 解析器运行一个页面 然后将结果返回到我的服务器 但是当我通过代码运行该命令时 它什么也不返回 我知道该命令是正确的 因为如果我使用相同的路径手动运行它 它就可以正常工作 这是我的代码 var p new Process S
  • 线程 - 访问资源避免饥饿

    我知道这不是一个 作业助手网站 但最近几天我疯了 因为我必须实现对资源的访问以避免饥饿 但我不知道如何做到这一点 谁能帮助我提供一些应用程序示例或文档 分配是 资源可以由两种类型的进程使用 黑色和白色 当白色进程使用该资源时 黑色进程就不能
  • 自定义 Bootstrap 4 中的折叠过渡

    Bootstrap 4 使用该类 collapsing在打开 关闭 collapse element 时对它的宽度 高度进行动画处理 不幸的是 实际的更改是通过将宽度 高度作为内联样式添加到元素并在过渡的开始和结束处添加和删除类来实现的 因
  • php将所有链接转换为绝对url

    我正在用 php 编写一个网站爬虫 并且我已经有了可以从网站提取所有链接的代码 问题 网站使用绝对 URL 和相对 URL 的组合 示例 http 替换为 hxxp 因为我无法发布超链接 hxxp site com site com sit
  • 服务器<->设备的数据同步框架/算法?

    我正在寻求实现服务器和分布式客户端之间的数据同步 服务器上的数据源是mysql 上面是django 客户可能会有所不同 更新可以在客户端或服务器上进行 并且服务器和客户端之间的连接不可靠 例如 可以在断开连接的手机上进行更改 当手机再次连接
  • 如何“实时”检查输入的内容

    我正在开发一个网络表单 它已经设置了一个文本字段来接收预期的数值 如果此字段的内容不是数字 则表单不会提交 但没有放置错误消息来让用户知道他们填写了错误的此字段 我的问题是 有没有办法实时检查输入内容并采取措施告诉用户他们没有正确填写 如果
  • 如何抑制某些文件的智能感知错误?

    Visual Studio 2015 提供了在同一窗口中显示 Intellisense 错误的选项 该窗口还显示常规生成错误 我喜欢它 因为我什至不需要构建来查看代码的语法是否正确 然而 该窗口还显示一个误报错误 该错误似乎与智能感知错误有
  • 如何使用 iOS 7 自定义过渡在顶部呈现半模态视图控制器

    我将如何在主视图控制器的顶部呈现 半视图 控制器 要求 呈现在主视图控制器顶部滑动的第二个视图控制器 第二个视图控制器应该只显示主视图控制器的一半以上 主视图控制器应在第二视图控制器后面保持可见 透明背景 下面不显示黑色 第二个视图控制器应