iOS11 iphonex 隐藏Home条 隐藏底部白条

今天阅读博客时候发现这篇文章讲到了如何隐藏home 条,特此记录,感兴趣的可以链接过去看看。

众所周知,苹果公司推出了iPhone X。随之而来的是一个新的白色线条,幸福地坐在底部的触摸板上,它替代了原有了home键。这也唤起了人们对物理home键的怀旧情结。
对消费者来说,这意味着苹果公司在硬件和软件创造出了美丽的奇迹,到时可以在预定期预定给予支持。对很多开发者来说,这意味着我应该做什么?谢天谢地,答案相当简单。
本周,我们将看看苹果公司在适配Home指示键上给我们提供了什么。
首先

1509001681184280.png

我们并不是每天都有新视频和硬件公告,但这正是此后不久发生的事情:
在“为iPhone X而设计”一文中,苹果公司元老级设计大师迈克·斯特恩(Mike Stern)制定了一些基本规则。所有的东西都是平等的,在你使用下面的新功能之前,你先停住脚步,看看你的使用方法是否符合相关要求。
尝试避免在home指示键附近区域做交互式控制,尤其是通过手势识别驱动的交互控制。
不要隐藏指示键、在它周围添加任何装饰品、或者试图改变它的外观。在iPhone X顶部的相机遮光板也是如此。
通常情况下,你不希望隐藏home指示键,除非你有被动观看体验(如:视频,照片幻灯片等)。
TL; DR -苹果公司表示, 大多数时候,不要去理会糟糕的指示键。
但是,这篇文章说的是特殊时间。
UI视图控制器新增功能
不管你是喜欢在每个控制器的基础上适配状态栏,还是对你来说适配都是令人厌恶的,苹果公司一直在以实例的方式做出这样的决定,而不是选择一个全球的所有设计。
隐藏home指示键基本上与适配状态栏的方式相同:

class ViewController: UIViewController
{
override func prefersHomeIndicatorAutoHidden() -> Bool
{
return true
}
}

如上所述,这样的场景应该是异常的,因为这样的默认实现返回false。然而,文件中有一个特别的评论:
这个系统会考虑你的偏好,但返回YES并不能保证home指示键被隐藏。
似乎没有提到为什么或者在什么时候UIKit会不尊重你所选择的偏好,尽管它认为苹果会强制执行自己认为最好的。当苹果认为它是最好时-就会不顾布尔值。因此,这应该是一些有趣的Stack Overflow帖子。
此外,这可能看起来很明显,但可能是最初令人困惑的根源。特别提到的功能名称是以自动隐藏结束而不是隐藏,这就是说从这里返回到true意味着UIKit会在它的状态良好并准备就绪时隐藏指示键(通常情况下是指,控制器几秒钟都没有接收任何触摸事件),而不是立即隐藏指示键。
UIKit信号
继续并行使用应用程序状态栏,只是简单地覆盖或分配给有条件地控制覆盖函数的变量是不够的。我们还有另一个新增的功能来查看控制器强大的setNeedsSomethingDone函数:

class ViewController: UIViewController
{
var shouldHideHomeIndicator = false
override func prefersHomeIndicatorAutoHidden() -> Bool
{
return shouldHideHomeIndicator
}
override func viewDidAppear(_ animated: Bool)
{
super.viewDidAppear(animated)
self.shouldHideHomeIndicator = true
self.setNeedsUpdateOfHomeIndicatorAutoHidden()
}
}

这是一个传递函数,因为它只是向UIKit发出信号,我们改变了先前选择的用于home指示键可见性的值。不过,与状态栏不同的是,自UIKit自己隐藏它之后,这并没有技术上的动效。因此,像这样的代码没有效果:

override func viewDidAppear(_ animated: Bool)
{
super.viewDidAppear(animated)
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
self.shouldHideHomeIndicator = true
UIView.animate(withDuration: 1, animations: {
self.setNeedsUpdateOfHomeIndicatorAutoHidden()
})
}
}

setNeedsUpdateOfHomeIndicatorAutoHidden()发送一个简单的任务都将执行一个轻微的alpha渐变,这与它是否包含在动画区块中无关。
容器控制器
查看控制器的最后一个新增加功能是通知UIKit子视图控制器是否应该指示home指示键的可见性。如果你开发iOS足够长时间,你可能会利用容器视图控制器来更好地促进抽象和封装模式。

override func childViewControllerForHomeIndicatorAutoHidden() -> UIViewController?
{
return myChildController
}

这些控制器可能会发现自己靠近屏幕底部,如果是这样-你可能希望home指示键忽略你。一个简单的覆盖返回隐藏的实例或是正在执行的实例解决了这个问题:
如果你确实指出子控制器应该指示其可见性,你也有责任重写以前讨论的函数:

class MyChildViewController: UIViewController
{
override func prefersHomeIndicatorAutoHidden() -> Bool
{
return true
}
}

该函数的特性是允许零返回值。如果是这种情况,那么UIKit将依靠当前的控制器作出决定-如果你选择不覆盖该函数,那么这个决定将是“显示home指示键”。
这也可以是一个运行时决定, UIKit将再次要求你调用它的我们刚刚提及的函数来通知框架应该再次查询prefersHomeIndicatorAutoHidden():

override func childViewControllerForHomeIndicatorAutoHidden() -> UIViewController?
{
return myChildController
}
func initializeChildController()
{
myChildController = MyChildController()
self.setNeedsUpdateOfHomeIndicatorAutoHidden()
}

以上函数就是实现这种功能。
虽然可以将其视为需要应用于日常iOS事件(即处理控制器)的更多思考过程,但你将发现应用程序界面几乎与现有的处理类似问题的UIKit函数相同。
更新:回答读者问题
Fabian Kuenzel提问:
新的home指示键还将放在网站的底部导航之上吗?
详细回答请看这里:
iPhone X 网页设计
我现在不是一个网络开发人员,但似乎有一个可以处理自动输入的元标签:
默认值为auto,它应该是需要插入内容的-虽然你可以对此忽视而选择封面覆盖整个视口的内容。但是,如果你应该选择整个屏幕,则使用一个新的CSS函数,常量(),可以使用预定义的常量来对围绕安全区域的元素进行填充。这类似于iOS的应用程序界面安全区域布局指南。
这是指南中的一个实例:

.post {
padding: 12px;
padding-left: constant(safe-area-inset-left);
padding-right: constant(safe-area-inset-right);
}

Bogdan有更全面的理解:
我不明白为什么在默认情况下苹果不关闭home指示键,或者至少给用户一个选项来关闭。将新用户引入操作是一个很好的功能,但最终情况是(如用户使用手机10分钟后),每个人都会记得如何切换应用程序,那么这时候就是一个令人讨厌和令人分心的线条。我说错什么了吗?
这是一个很好的观点。
就像一个凹槽不仅仅是一个凹槽,它更接近于是硬件的一部分及iPhone的品牌认知度,我认为软件和home指示键同等重要。它是其DNA的一部分,另外我还怀疑,苹果公司的想法是,它的出现使用户对UX有信心。它避免了一系列的问题,诸如:“为什么现在已经消失了? 它什么时候会显示? 什么时候会隐藏? 我返回的时候还会显示吗?
也就是说,我同意你的看法-这些是常见的假设,这似乎有点多,但我还没有使用iPhone X,所以我会在正式体验后再做出判断。
Will Kampmann提问:
你知道当全屏显示应用如玩游戏时会发生什么吗?Home指示键会被不同的滑动方式唤醒吗?如推送通知及常用iPhone上的控制中心?
有一个应用程序来忽视这个操作,但是苹果真的真的希望你不要这样做。他们提到的一个使用情景是什么?全屏游戏。以下是关于此问题的人机界面指南:
在极少数情况下,像游戏这样的沉浸式应用可能需要自定义的、优先于系统的屏幕边缘手势,第一个滑动调用特定于应用的手势,而第二次滑动则会调用系统手势。
这是一个简单的可覆盖任何视图控制器的实例:

override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
return .top
}

总结:
iPhone X注意事项:
对iOS工程师来说,它仅仅设计之后表现出的成就感,还是另一个视图控制器对修复和编码的考虑?也可能是两者的混合。如果时间在软件开发的连续统一体中教会了我们什么,那就是时间流逝+一个生态系统=新的应用程序界面。在今天的智能手机领域,更现实的说法是,时间流逝+苹果的生态系统=新的硬件=新的应用程序界面。
我们通过增加iPhone的高度成功适配了。我们通过不同的决议来推动进程。我们可以处理导航栏中的一个小相机配件,以及靠近底部挡板的2点线条。

原文作者:Jordan Morgan
原文地址:https://medium.com/the-traveled-ios-developers-guide/iphone-x-dealing-with-home-indicator-2e8e47f5647f
本文原址请点击此处

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,066评论 4 62
  • 昨夜醉春风,楼台高且寒,隔窗挑烛绣双花!鸳鸯漾水柳。 无意入廊桥,痴梦惊又慌。怕是江风懒少年,又做丁零舞。
    扑忒阅读 166评论 0 0
  • 今天下午,我做了一件比较疯狂的事情,北美n1附近,沿着晋阳街体育路口向南走,到了龙城大街后,再沿着龙城大街...
    琦检阅读 542评论 0 3
  • 残莲静坐亦成佛 神安在 形不傲 泥身已藏芊芊我 栉风沐雨 永持初心 不为有巨擘 远遁烟火哀怨少 近匿市井欢...
    品贤阅读 329评论 0 2