相关文章推荐
傲视众生的山寨机  ·  Use the XAML code ...·  1 周前    · 
迷茫的打火机  ·  MySQL 8.0 ...·  10 月前    · 
有腹肌的大白菜  ·  Oracle ...·  1 年前    · 

在 iOS 11 中,Apple 引入了新的视觉更改,包括导航栏、搜索栏和表视图的更新。 此外,还进行了改进,允许在边距和全屏内容方面具有更大的灵活性。 本指南介绍了这些更改。

有关专门针对 iPhone X 进行设计的信息,watch Apple 的 iPhone X 设计 视频。

UIKit

UIKit 栏已在 iOS 11 中进行了调整,使其更易于最终用户访问。

其中一项更改是当用户长按条形图项时显示的新 HUD 显示器。 若要启用此功能,请在 上 UIBarItem 设置 largeContentSizeImage 属性,并通过 资产目录 添加更大的映像:

barItem.LargeContentSizeImage = UIImage.FromBundle("AccessibleImage");

iOS 11 引入了新功能,使导航栏标题更易于阅读。 应用可以通过将 属性分配给 PrefersLargeTitles true 来显示此更大的标题:

NavigationController.NavigationBar.PrefersLargeTitles = true;

在应用中设置更大的标题会使应用 中的所有 导航栏标题显示得更大,如以下屏幕截图所示:

若要控制大型标题何时显示在导航栏上,请将导航项上的 设置为 LargeTitleDisplayModeAlwaysNeverAutomatic

搜索控制器

iOS 11 使将搜索控制器直接添加到导航栏变得更加容易。 创建搜索控制器后,请使用 属性将其添加到导航栏:SearchController

NavigationItem.SearchController = searchController;

根据应用的功能,你可能不希望在用户滚动浏览列表时隐藏搜索栏。 可以使用 属性对此进行调整 HidesSearchBarWhenScrolling

Apple 创建了一个新属性 - directionalLayoutMargins - 可用于设置视图和子视图之间的空间。 与 directionalLayoutMarginstrailing insets 一起使用leading。 无论系统是从左到右还是从右到左的语言,应用中的间距都由 iOS 适当设置。

在 iOS 10 及以前版本中,所有视图都有一个最小边距大小,可以对齐。 iOS 11 引入了使用 ViewRespectsSystemMinimumLayoutMargins替代的选项。 例如,将此属性设置为 false 可让你将边缘插页调整为零:

ViewRespectsSystemMinimumLayoutMargins = false;
View.LayoutMargins = UIEdgeInsets.Zero;

iOS 7 引入了topLayoutGuidebottomLayoutGuide 作为限制视图的一种方式,以便它们不会被 UIKit 栏隐藏,并且位于屏幕的可见区域。 这些已在 iOS 11 中弃用,转而使用 安全区域

安全区域是一种新的方式来思考应用程序的可见空间,以及如何在视图和超级视图之间添加约束。 例如,考虑以下图像:

以前,如果已添加视图并希望它在上面的绿色区域中可见,则可以将其限制在 的底部TopLayoutGuide顶部BottomLayoutGuide。 在 iOS 11 中,应将其限制在安全区域的 顶部底部 。 以下是一个示例:

var safeGuide = View.SafeAreaLayoutGuide;
imageView.TopAnchor.ConstraintEqualTo(safeGuide.TopAnchor).Active = true;
safeGuide.BottomAnchor.ConstraintEqualTo(imageView.BottomAnchor).Active = true;

UITableView 在 iOS 11 中进行了许多小而重大的更改。

默认情况下,页眉、页脚和单元格现在会根据其内容自动调整大小。 若要选择退出此自动调整大小行为,请将 EstimatedRowHeightEstimatedSectionHeaderHeightEstimatedSectionFooterHeight 设置为零。

但是,在某些情况下, (例如在 Interface Builder 中使用现有情节提要时添加 UITableViewController) 可能需要手动启用自大小单元格。 为此,请确保已分别在“单元格”、“页眉”和“页脚”的表视图上设置以下属性:

// Cells
TableView.RowHeight = UITableView.AutomaticDimension;
TableView.EstimatedRowHeight = UITableView.AutomaticDimension;
// Header
TableView.SectionHeaderHeight = UITableView.AutomaticDimension;
TableView.EstimatedSectionHeaderHeight = 40f;
//Footer
TableView.SectionFooterHeight = UITableView.AutomaticDimension;
TableView.EstimatedSectionFooterHeight = 40f;

iOS 11 扩展了行操作的功能。 UISwipeActionsConfiguration 引入了 以定义一组操作,当用户在表格视图中的某一行上向任一方向轻扫时,应执行这些操作。 此行为类似于本机 Mail.app 的行为。 有关详细信息,请参阅 行操作 指南。

表视图在 iOS 11 中支持拖放。 有关详细信息,请参阅 拖放 指南。

  • iOS 11 (Apple) 的新增功能
  • 更新了 apple) App Store Product Page (
  • 针对 iPhone X (Apple) (视频) 进行设计
  • 更新适用于 iOS 11 的应用 (WWDC) (视频)
  •