首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iPad Safari多窗口视图分析和实现思路

    这里我将以 Safari 为参考探讨它的实现思路。 Safari 是 iOS 系统自带的浏览器,支持打开多个网页窗口。...在手机上,由于屏幕空间有限,点击窗口管理的按钮可以看到手机上采用了一种视图层叠的效果,有点模拟从一个实体文件夹中翻查文件的感觉。...另外我们可以看到缩略图的顶部有一个标题栏和一个关闭按钮,在双指缩放放大的过程中我们可以看到一个临界点,超过这个临界点的时候标题栏会渐隐,露出原本页面截图顶部的搜索栏和标签栏。...我们常用的 UITabBarController、UINavigationController 都是这样的容器控制器(还有一个在 iPad 分屏展示会用到的 UISplitViewController)...具体来说,从某个具体页面切换到大纲视图之前,对页面做一个截图,ScrollView 中也不再加载具体的 ViewController 的 view 而是仅放置静态截图。

    4.5K30

    在iOS中如何正确的实现行间距与行高

    关于行间距 lineSpacing 先贴出一张 iOS 中 UILabel 的默认排版样式: ? 大家也都能看出来,默认的排版样式中,文本的行间距很小,显得文本十分挤。...正确的实现行间距 先看示意图: ? 红色区域是默认绘制单行文本会占用的区域,可以看到文字的上下是有一些留白的(蓝色和红色重叠的部分)。...关于行高 lineHeight 如果你只关心 iOS 设备上的文本展示效果,那么看到这里就已经够了。但是我需要的是 iOS 和 Android 展现出一模一样的效果,所以光有行间距是不能满足需求的。...在 debug 模式下确认了下文本的高度的确正确的,但是为什么文字都显示在了行底呢? 修正行高增加后文字的位置 修正文字在行中展示的位置,我们可以用 baselineOffset 属性来搞定。...好在我们通常是行高和行间距针对不同的需求分别独立使用的,它们在分开使用时不会触发这个问题。所以在 VirtualView-iOS 库中,我暂且将高度计算的逻辑保持和系统一致了。

    5.6K30

    iOS学习——获取当前最顶层的ViewController

    在iOS开发过程中,我们经常性会需要获取当前页面的ViewController,然后利用ViewController进行一些操作,例如在最顶层的ViewController上展示一个UIAlertController...在寻找的过程中,要分别考虑当前ViewController是UITabBarController和UINavigationController的情况,同时还要考虑到当前ViewController是否通过...class]]) { // 根视图为UITabBarController currentVC = [self getCurrentVCFrom:[(UITabBarController...(哈哈哈,毕业工作半年,发觉第一次写iOS用到递归,突然觉得高大上)。...[UIApplication sharedApplication].keyWindow.rootViewController获取到的是项目的根视图,结合可能用到UITabBarController或者UINavigationController

    7.2K50

    iOS14开发-UIViewController

    iOS 13 之后,模态跳转并非全屏显示,如果需要全屏显示,需要手动设置。 两个概念 presentedViewController: 被 present 的控制器。...逆向传值不能像顺向传值那样简单进行,需要借助于下面三种方式。 代理 代理模式需要弄清楚被代理对象和代理对象,然后按照下面的规范进行。...需要设置当前的 UIViewController 为被代理 UIViewController 中的代理属性。 闭包 可以理解为代理模式中协议的闭包替代,比代理模式更简单。...接收值的 UIViewController 实现需要传值的 UIViewController 中的闭包属性,在闭包的实现中拿到传过来的值进行使用。...但展示的 UIViewController 最多不超过5个,否则会折叠。 它的 View 由两部分组成,上面是 UIViewController 的view,下面是UITabBar。

    3.7K20

    iOS 知识小集(Status Bar变换)

    背景 iOS 中经常会有需要在某个界面改变状态栏颜色或者某个界面隐藏状态栏的需求。而改变状态栏颜色和控制状态栏显示和隐藏的API,在iOS 的不同版本中也发生了很多变化。...iOS 7以前 在iOS 7之前,状态栏是不占视图位置的。每个控制器中的根view都是从屏幕的Y轴20px处开始显示的。...API iOS 7 ~iOS 9 从iOS 7开始系统风格大变样,图标扁平了,状态栏也不在闹独立了。因为状态栏的会受到导航栏或者View背景色的影响,所以状态栏的风格也需要实时调整了。...效果gif iOS 9 之后 如上面第二张图所示,UIApplication的控制状态栏的方法,在iOS 9之后被弃用了。 所以iOS 9之后尽量使用重写ViewController方法的方式吧。...但是使用UITabBarController依然正常,状态栏不受UITabBarController影响。

    1.7K21

    Xcode16新特性与iOS18适配指南

    Project navigator 中的右键菜单New File...改为New Empty File与New File from Template......项目构建失败时的错误信息更加明确。 更好的并行、更好的诊断与更快的调试。 iOS 18 适配指南 同样在 WWDC24 上 Apple 发布了 iOS 18,推出了很多新的内容。...在掌握了基于 iOS 17 开发的基础上,只要学习以下的新特性就能轻松过渡到 iOS 18。 新增 Swift Testing 测试框架。...UITabBarController 增加了一个类型为 UITabBarController.Mode 的mode属性,用于设置显示效果,共有 3 种取值,分别为automatic、tabBar与tabSidebar...系统能够自动监听并且处理特征值的改变,不再需要UITraitChangeObservable协议中的特征变化注册方法registerForTraitChanges()。

    9.5K12

    iOS:分割控制器UISplitViewcontroller

    分割控制器UISplitViewController 功能:它也是ipad的一个新特性,在屏幕上可以同时显示两个控制器,左边一个,右边一个;左边的为主控制器,右边的为详细控制器,主控制器可以根据需要显示或隐藏...这个数组有两个元素,左侧和右侧,左侧是元素0,右侧是元素1 @property (nonatomic, copy) NSArray *viewControllers; 代理方法:Split View不能没有...2、导入几张素材图片,用来在详细控制器中显示。...所有的文件截图为: 3、下面就是具体的代码创建了: //在AppDelegate.m文件中: 导入头文件并声明必要的属性,同时实现分割控制器的协议 #import "AppDelegate.h" #import...pragma mark -UISplitViewController> //主控制器将要隐藏时触发的方法 -(void)splitViewController:(UISplitViewController

    3.3K30

    实践-小细节Ⅶ

    1. iOS11中UIWebVIew 所以网页的y 坐标是 0 ,但是在 iOS 11里面就是无法在 状态栏上显示,iOS11下的系统不会这样会占用 状态栏的位置 2....iOS11中 Undefined symbols for architecture x86_64: 3.从APP中跳转到各种手机设置界面(亲测有效) 一些常用的设置里的位置: 电池电量 Prefs:root...在我们的iOS开发中,我们常常会遇见在程序中打开第三方应用的功能,比如美团付款时打开支付宝,也就是程序之间的相互调用....的程序 7. iOS11中ScrollerView或者其子类占位 状态栏设置 在ios11系统下,如果tableview或者ScrollerView 是从0开始,需要做简单的适配 适配前 if (@available...: [vc.class isKindOfClass:[UITabBarController class]] 10.使用类别为父类实现功能分散管理 我们使用类别为父类实现功能分散管理: 类别中除了不可以生成成员变量

    1.2K20

    iOS多控制器之UINavigationController&UITableBarController1. 多控制器2. UINavigationController3. UITableBarCont

    多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单 当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个view时,可以用一个大的view去管理1个或者多个小view...为了便于管理控制器,iOS提供了2个比较特殊的控制器: UINavigationController UITabBarController 2....UITableBarController UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换...UITabBarButton在UITabBar中得位置是均分的,UITabBar的高度为49。 UITabBar的结构⼤大致如下图所示: ?...Paste_Image.png 7.2.3 往UITabBarController中添加子控制器 有两种方法UITabBarController中添加子控制器 : [tb addChildViewController

    2K40
    领券