【Xamarin.iOS】使用iOS 11进行大型游戏

简介: iOS 11中更明显的用户界面更改之一是系统应用程序中使用的较大的标题,从App Store和Apple Music到Notes和Mail。 健康和联络应用如下所示: 当内容被滚动时,该标题在屏幕上显示动画并缩小到正常大小的导航栏,以便有效地使用屏幕空间。

iOS 11中更明显的用户界面更改之一是系统应用程序中使用的较大的标题,从App Store和Apple Music到Notes和Mail。 健康和联络应用如下所示:

当内容被滚动时,该标题在屏幕上显示动画并缩小到正常大小的导航栏,以便有效地使用屏幕空间。 Apple的人机界面指南提供了有关何时使用大型标题的提示; 它们旨在介绍内容,并帮助用户区分具有类似滚动行为的屏幕。

大型标题是导航栏的一部分,因此要实现大标题,您的应用必须使用导航栏。 在您的UINavigationController类'ViewDidLoad方法中添加以下代码,以使标题以大样式呈现:

点击(此处)折叠或打开

  1. NavigationBar.PrefersLargeTitles = true;


单独的设置将导致每个视图控制器使用大样式,这通常不是可取的。 要强制使用常规大小的导航栏和字体大小,请在应使用常规样式的视图控制器的ViewDidLoad方法中设置以下属性:

点击(此处)折叠或打开

  1. NavigationItem.LargeTitleDisplayMode = UINavigationItemLargeTitleDisplayMode.Never;


LargeTitleDisplayMode有三个可能的值:

  • 从不:强制使用常规的小格式导航栏。
  • 始终:强制导航栏和字体大小使用大格式。
  • 自动:使用与导航堆栈中先前项目相同的样式(大或小)。

在下面显示的应用程序中,PrefersLargeTitles设置为true,导航堆栈中的第二个视图控制器上的显示模式设置为从不。 这导致第一页具有较大的样式,但后续页面恢复到正常高度:

今天许多应用程序喜欢将自定义样式设置为iOS上的默认颜色。 使用下面的外观属性自定义大标题:

点击(此处)折叠或打开

  1. //
  2. UINavigationBar.Appearance.TintColor = UIColor.FromRGB(0xE7, 0x63, 0x3B); // e7963b dark
  3. // Title bar background color
  4. UINavigationBar.Appearance.BarTintColor = UIColor.FromRGB(0xF7, 0xE2, 0x8B); // f7e28b light
  5. // 'small' Title bar text
  6. UINavigationBar.Appearance.SetTitleTextAttributes(new UITextAttributes()
  7. {
  8.     TextColor = UIColor.FromRGB(0xE7, 0x63, 0x3B), // e7963b dark
  9.     TextShadowColor = UIColor.Clear
  10. });
  11. // 'Large' Title bar text
  12. UINavigationBar.Appearance.LargeTitleTextAttributes = new UIStringAttributes
  13. {
  14.     ForegroundColor = UIColor.FromRGB(0xE7, 0x63, 0x3B), // e7963b dark
  15. };


最后,请注意,在横向上,无论PrefersLargeTitles设置如何,导航栏总是以该方向的正常高度呈现:

请记住,这些新属性仅适用于iOS 11! 如果您的应用程序还针对早期版本的iOS,请使用版本检查来防止旧版手机出现错误。

您可以从GitHub下载LargeTitles样本的代码。 访问Xamarin开发人员中心了解更多iOS 11技巧!

目录
相关文章
|
安全 前端开发 开发工具
iOS12、iOS11、iOS10、iOS9常见适配
iOS12、iOS11、iOS10、iOS9常见适配
235 0
|
BI 开发工具 Android开发
和iPhone玩家对战吧,Google Play游戏服务将支持iOS平台
Google今天在游戏开发者大会上宣布了若干与Google Play游戏服务的相关更新,其中和游戏玩家关系最大的也许就是Google Play Game Services将支持iOS平台,这也就意味着回合制和实时多人游戏将同时支持Android和iOS,以后这两个平台的玩家也就可以互动了。显然,这对于游戏开放商也是个好消息——让原本被割裂的用户参与到同场竞技中来。
314 0
和iPhone玩家对战吧,Google Play游戏服务将支持iOS平台
|
算法 开发工具 git
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法(二)
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法
185 0
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法(二)
|
算法 iOS开发
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法(一)
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法
185 0
|
开发工具 git iOS开发
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计(二)
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
240 0
|
算法 iOS开发
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
161 0
|
测试技术 Android开发 iOS开发
Unity3D-实现连续点击两次返回键退出游戏(安卓/IOS)
Unity3D-连续点击两次返回键退出游戏 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例...
2873 0