快速操作是让您的用户在主屏幕中快速拜访您运用的常用功用的好办法。iOS 13 引入了快速操作的概念,用户能够在其间接触并按住运用程序图标以显现一组方便办法或操作,以便直编辑器软件接从主屏编辑器和ide的区别幕履字符串逆序输出行。

默许情况下,一切运用程序都具有修正主屏幕或删去运用程序的方便操作:


适用于 iOS 的主屏幕快速操作

开发者还能够供给自己的方便操作,为用户供给常用运用功用的强大方便办法。iOS 相机运用程序具有拍摄不同类型的照片或录制视频的操作。购物运用程序可能会让您直接跳转到您的订单或愿望清单,而音讯传递字符间距加宽2磅运用程序可能会显现您最喜欢的联系人,以便您轻松拜访它们。

我敢肯定,您能够想出快速举动笔记本电脑什么牌子好能够使您的用户受益的办法。在本教程中,您将了解:

  • 静态快速​​操作,一直可用于您的运用。
  • 动态windows7怎么重装系统速操作,您的运用能够在运转时界说。
  • 如安在示例项目中支撑这两种类型的快速操作,一个名为Note Buddy的笔记运用程序笔记本电脑

入门

Note Buddy 是一款具有一些基本功用的笔记运用程序:

  • 增加、修正或删去带有标题和正文的注释。
  • 保藏一个笔记。
  • 在发动之间存储您的笔记。
  • 按前次修正日期主动排序笔记。

翻开项目,然后构建笔记并运转。字符是什么您将看到此注释页面:


适用于 iOS 的主屏幕快速操作

为了增强 Note Buddy 的功用,您能够在Models组中找到Note模型及其编辑器小说相关NoteStore的类。**

编辑器怎么打开到 SwiftUI,在Views组中,您有:

  • NoteList:显现按前次修正日期排序的一切笔记列表。
  • NoteRow:笔记列表中笔记行的视图。它显现笔记的标题、正文以及用户是否将其标记为保藏。
  • EditNote:用于修正笔记标题、windows7怎么重装系统正文或更改保藏状况的修正器。
  • NavigationLink+Value:一个辅助扩展,当您有一个相关的面试技巧和注意事项数据模型要推送时,使编程导航更简单一些。

最终,AppMain经过引用NoteStore和主体来描绘您的运用程序,该主体在 a 中设置NoteList视图WindowGroup并正确注入恰当的环境值。

在开端编码之前,是时分细心看看这两种类型的快速操作是什么编辑器下载,以及它们是如何工作的。

静态与动态快速操作

您能够运用两种类型的快速操作:静态和动态。

您将静态操作用于在您的运用程序中永久不会笔记更改的操作,例如邮件运用程序的新音讯操作。

假如您的操作可能在某些条件下产生变化或取决于特定数据或状况,笔记本显卡天梯图请运用动态操作。例如,音讯运用程序将为您一切固定的对话增加速速操作。

在这两种情况下,您都增加代码来处理触发的特定操作。由于增加静态快速操作更快,您将从这些开端。

创立静态快速操作

静态快速​​操作是让您的用户创立笔记本插电用好还是不插电新笔记的好办法。

适用于 iOS 的主屏幕快速操作

首先,增加模型代码以协助您处理触发的操作。右键单击面试自我介绍Models组,然后单击New File…Swift File。将新文件命名为Action并单击Create

将文件内容替换为:

导入 UIKit
// 1
枚举动作类型:字符串 {
  case newNote = "NewNote"
}
// 2
枚举举动:相等{
  事例新注
  // 3
  init?(shortcutItem: UIApplicationShortcutItem) {
    // 4
    守卫让 type = ActionType(rawValue:shortcutItem.type) else {
      回来零
    }
    // 5
    开关类型{
    事例.new留意:
      自我 = .newNote
    }
  }
}
// 6
类 ActionService: ObservableObject {
  静态让共享 = ActionService()
  // 7
  @Published var 动作:动作?
}

很多工作正在产生。这是您增加的内容:

  1. 您创立一个ActionTypeStr面试技巧和注意事项ing.稍后您将运用字字符间距怎么加宽符串值来协助辨认您的运用将履行的不同类型的编辑器操作。该newNote事例将确认创立新注释的操作。
  2. 您创立另一个名为的枚举Action,看起来相似,但仅仅Equatable.这可能看起来有点重复,可是当您稍后增加其他操作时它会很有意义。
  3. 然后创立一个可失利的初始化程序,它承受UIApplicationShortcutItem.系统运用这种类型来描绘不同的快速动作。
  4. 在这儿,您保证您正在创立Action一个已知的Action笔记本电脑排名前十Type,不然您回来nil
  5. 翻开ActionType您的运用程序已知的不编辑器哪个好用同可能值。然后,您能够运用可用的信息来描绘正确的Actwindows许可证即将过期怎么办ion.字符串是什么意思
  6. 界说一个ObservableObject类,您能够稍后将其传递到 SwiftUI 环境中,并为您今后运用 UIKit 代码供给一个单例拜访器。
  7. 界说一个@Published能够标明Windows笔记本插电用好还是不插电的运用应履行的操作的特点。

Action概念的意图是让您对运用支撑的快速操作进行建模,并在UIApplicationShortcutItem.

现在,翻开AppMain.swi面试自我介绍一分钟ft。在上面noteStore,增加一个新特编辑器英语ActionService

私有让 actionService = ActionService.shared

然后更新body完成以保证服务被注入到视图层次结构中而且N笔记本电脑开不了机oteL面试技巧ist能够拜访它:

var body: 一些场景 {
  窗口组 {
    笔记列表()
      .environmentObject(actionService)
      .environmentObject(noteStore)
      .environment(.managedObjectContext, noteStore.container.viewContext)
  }
}

ActionService在 SwiftUI 环境中可用,编辑器下载是时分运用它了。在Views组中翻开NoteList.swift并在下面增加以下特点:*字符间距怎么加宽*noteSwindows7旗舰版tore

@EnvironmentObject var actionService: ActionService
@Environment(.scenePhase) var 场景相位

您不仅要拜访ActionService该类,还需求拜访ScenePhase,这是一个特点,当您的运用程序变为活动状况和进入后台时会告诉您。

在视图的底部,增加以下办法:

func performActionIfNeeded() {
  // 1
  守卫让举动 = actionService.action else { return }
  // 2
  切换动作{
  事例.new留意:
    创立新笔记()
  }
  // 3
  actionService.action = nil
}

这个办法做了三件事:

  1. 检查ActionServwindows许可证即将过期怎么办ice.
  2. 翻开动作类型并调笔记本电脑什么牌子好用 的createNewNote()动作Action.newNote
  3. 从履行后删去操作ActionSer编辑器哪个好用vice

每逢您字符间距加宽2磅怎么设置的运用程序处于活动状况时字符间距怎么加宽,您都需求触发此代码。您将onChange(of:perform:)视图修饰符与scenePhase您之前增加的特点一同运用。

toolbar在修饰符的右大括号后增加以下代码:

// 1
.onChange(of: scenePhase) { newValue in
  // 2
  切换新值 {
  事例.活动:
    履行ActionIfNeeded()
  // 3
  默许:
    歇息
  }
}

在这儿,代码:

  1. 将修饰符增加到将在更改List时触发其关闭的修饰符。scenePhase
  2. 运用供给的参数,它会翻开该值。假如是.active,它将调用您的新performActionIf字符常量Needed()办法。
  3. 由于您不关怀其他状况,例如.inactiveor.backgr面试自我介绍ound,它不会做任何工作。

修正信息特点列表文件

您将逻辑增加到处理操作的代码中。但在运转运用程序之编辑器135前,您笔记依然需求告诉系统您的静态操作。这很简单。

资源组中,翻开Info.plist。右键单击顶部的信息特点列表,然后单击 增加行

Key列中,字符键入Home Sc笔记本显卡天梯图reen Shortcut Items,然后按回车键完成修正。Xcode 主动将Type设置为Array并为您增加一个项目。经过单击 V 形展开元素,您将看到两个嵌套键:


适用于 iOS 的主屏幕快速操作

此数组中列出的笔记每个项目代表您的运用支撑的单个静态快速操作。运用以下值更新占位符项:

  • 方便办法项目类型NewNote
  • 标题New No笔记本电脑排名前十te

除了默许键之外,您还需求增加一个。将鼠标悬停编辑器135标题上,然后单击呈现的 + 图标。键入UIApplicationShortcu面试自我介绍简单大方tItemIconSymbolName(暂时忽略弹出选项,您必须键入完整的字符串)KeyValuesquare.and.pencil**

以下是每个键的细分:

  • Showindows10激活密钥rtcut Item Type:一个字符串标识符,代表一种独特的操作类编辑器型。您可能会留意到这与ActionType.newNote您之前增字符间距在哪里设置加的枚举事例的原始值相匹配。这很重要。
  • 标题:当用户点击并按住笔记本插电用好还是不插电您的运用程序图标时显现的用户友好标题。
  • UIAppli面试技巧和注意事项cationShortcutItemIconSymbolName:用于此操作的 SF编辑器 符号。您还能够运用UIApplicationShortcutItemIconFile
    捆绑包中可用的图标文件,或UIApplicationSho笔记本电脑一直充电好吗rtcutItemIconType一组可用于快速操作的预界说选项。修正 Info.plist 条目时,能够从下拉列表中挑选图标文件和图标类型,但符号选项不是。


适用于 iOS 的主屏幕快速操作

您能够在Apple 文档中阅览有关Info.plist中方便办法项意图附加键。

构建和运转您的运用程序

构建并运转您的运用程序。回来主屏面试技巧幕并长按 Note Budd面试技巧y 运用程序图标以检查列表中现在可用的快速操作:


适用于 iOS 的主屏幕快速操作

点击新笔记以检查会产生什么:


适用于 iOS 的主屏幕快速操作

没有什么?!?

嗯,这很古怪。您增加了一个模型来处理运用程序中的操作,并在Info.plist 中界说了一个静态操作。

那怎么了?

当用户与快速操作进行交互时,系windows是什么意思统会告诉您的运用程序,但您没有面试自我介绍简单大方对该信息进行任何操作。是时分这样做了!

处理静态快速操作

SwiftUI 没有供给任何原生机制来呼应快速操作的发动事情。因而,这部分需求依靠 UIKit。

右键单击AppMain.swift并挑笔记本电脑New File…Swift File。将文件命名为AppDelegate并单击Create编辑器哪个好用将文件内容替换为:

// 1
导入 UIKit
// 2
类 AppDelegate: NSObject, UIApplicationDelegate {
  私有让 actionService = ActionService.shared
  // 3
  功用运用程序(
    _ 运用程序:UIApplication,
    configurationForConnectingconnectingSceneSession: UISceneSession,
    选项:UIScene.ConnectionOptions
  ) -> UISceneConfiguration {
    // 4
    假如让shortcutItem = options.shortcutItem {
      actionService.action = Action(shortcutItem:shortcutItem)
    }
    // 5
    让配置 = UISceneConfiguration(
      名称:connectingSceneSession.configuration.name,
      sessionRole:connectingSceneSession.role
    )
    configuration.delegateClass = SceneDelegate.self
    回来配置
  }
}
// 6
类 SceneDelegate: NSObject, UIWindowSceneDelegate {
  私有让 actionService = ActionService.shared
  // 7
  函数窗口场景(
    _windowScene:UIWindowScene,
    performActionForshortcutItem: UIApplicationShortcutItem,
    completionHandler: @escaping (Bool) -> Void
  ) {
    // 8
    actionService.action = Action(shortcutItem:shortcutItem)
    完成处理程序(真)
  }
}

假如你对 UIKit 不太熟悉,别忧虑!以下是上述代码的概述:

  1. 导入 UIKit 结构以拜访此文件中所需的符编辑器怎么打开号和类型。
  2. 创立一个AppDelegate承继自协议NSObject并契合UIApplicationDelegate协议的命名类笔记本电脑一直充电好吗
  3. 完成application(_:configurationForConnecting:options:)挂钩到运用程序预备发动主 UI 时触发的事情。
  4. shortcutItem选项一同翻开包装。假如存在,则标明用户正在经过快速操作发动您的运用程序。运用您之前增加的初始化程序将数据映射到 anAction编辑器将其分配给ActionService.
  5. 经过创立恰当的windows许可证即将过期怎么办UI编辑器SceneConfigura笔记本电脑性价比排行2020tion目标并回来它来满足办法的要求。
  6. 与第二步相似,创立另一个契合UIWindowSceneDelegate协议的类。
  7. 完成windowScene(_:performActionFor:completionHandler:)挂钩在您的运用程序发动后用户与快速操作交互时触发的事情,例如,当它在后台时。
  8. 与第四步相似,测验转化UIApplicationShortcutItem为 anAction并将其传递给ActionService.

最终,您的 SwiftUI 运用需求运用新的AppDelegateSceneDelegate.因而,在AppMai编辑器英语n.swift的 下方actionServic面试技巧和注意事项e,增加以下特点AppMain

@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

是时分再次构字符串是什么意思建和运转您的运用程序了。回来主屏幕并再次测验运用您的快速操作:



极好的windows是什么意思!您增加了您的第一个静态快速操作。尽管这为许多可能性翻开了大门,但您无法笔记本电脑开不了机运用运转时运用的信息对其进行自界说。这就编辑器英语是动态动作的用武之地。

创立动态快速操作

假如用户想要修正他们最近的笔记,他们笔记本电脑一直充电好吗依然需求翻开运用程序,翻滚列表以找到它,点击它然后进行修正。

简化和加速流程会很棒!

windows是什么意思Info.plist 中进行静态操作时,您能够在代码中增加一切动态操作。对于 Note Buddy,可能对于您的许多运用程序,这些动态操作将在您的场景编辑器哪个好用阶段更改为background.因而,在前往主屏幕之前,您能够设面试问题大全及答案大全置一些操作以在最终修正日期之前修正最新的笔记。

处理动态快速操作

要增加动态操作,首先向您的ActionTypeAction枚举增加一个新事例。

翻开Action.swift并将以下内容增加到ActionType

case editNote = "EditNote"

将以下新事例增加到Action

事例修正注(标识符:字符串)

这就是为什么ActionType而且Action需求是两个独自的枚举。whileActionType标明不同快速动作类型的标识符,Action标明动作自身。在某些情况下,例如 的情况.editNote,这能够包括其他相关值。

增加新的枚举用例后,您会留意字符串逆序输出到编译器友好地告字符间距诉您,switch 语句init?(shortcutItem:)不再是翔实无遗的。经过将以下情况增加到开关来处理此问题:

事例.edit留意:
  if let identifier = shortcutItem.userInfo?["NoteID"] as? 细绳 {
    self = .editNote(标识符:标识符)
  } 别的 {
    回来零
  }

在这儿,您将检查shortcutItemuserInfo字典以获取要修正的注释的 ID。假如成功,您将.editNote笔记本显卡天梯图用相关值初始化操作。不然,初始化程序仅仅经过回来而失利nil

假如您现在测验构建项目,您面试将在NoteList.swift中看到另一个编译失利面试常见问题及回答技巧。转面试自我介绍一分钟到它,您会发现您还需求在内部完成新的操作处理performActionIfNeeded()

将以下代码增加到 switch 语面试句中:

case .editNote(let 标识符):
  selectedNote = noteStore.findNote(withIdentifier: 标识符)

构建并运转您的运用程序。然后前往主屏幕,长按 No字符间距怎么加宽te Buddy 图标并检查成果:


适用于 iOS 的主屏幕快速操作

再一次……什么都没有?

尽管您面试自我介绍简单大方现已保证快速操作正确传递到您的运用程序,但您依然没有告诉您的运用程序显现任何动态项目。接下来你会这样做。

增加您的动态快速操作

如前所述,增加动态操作的好地方是运用程序进入后台时。此时,您具有运转代码所需的一切信息,该代码确认要增加哪些操作,然后增加它们。

由于您现已在观察ScenePhaseinNoteList,因而这是更新操作的好地方。但在您这样做之前,您需求创立自己的实例字符间距加宽2磅怎么设置UIApplicationShortcutIt笔记本电脑开不了机em来描绘您的动态操作。

前往Note.swift并在文件顶部增加以下导入:

导入 UIKit

Note扩展中,增加以下特点:

// 1
var 方便办法项:UIApplicationShortcutItem?{
  // 2
  守卫!wrappedTitle.isEmpty || !wrappedBody.isEmpty else { return nil }
  // 3
  回来 UIApplicationShortcutItem(
    类型:ActionType.editNote.rawValue,
    本地化标题:“修正注释”,
    本地化字幕:wrappedTitle.isEmpty ?包裹体:包裹标题,
    图标:.init(systemImageName:isFavorite?“星”:“铅笔”),
    用户信息: [
      “NoteID”:标识符为 NSString
    ]
  )
}

下面是代码分化:

  1. Note您在called上界说笔记本了一个新的核算特点shortcutIt编辑器怎么打开em。该特点是可选的,由于您不需求将每个音符都标明为快速操作。

  2. 假如注释没有标题或正文,则回面试技巧和注意事项nil以便不会显现该注释。

  3. 然后你初始化一个新的实例UIApplicationShortcutItem并回来它。

    • 运用 界说的类型,ActionType以便在您稍后读回时与预期编辑器小说值匹配。
    • 供给一个用户友好的标题,就像你在Info.plist 中所做的那样。
    • 要进一步个性化操作,您能够将注释的标题或正文作为快速操作的副标题。
    • 运用恰当的 SF 符号来标明该项目是否是保笔记本插电用好还是不插电藏夹。
    • 在 中包括唯一标识符,Not编辑器手机版e以便userInfo您在呼应快速操作时知道要修正哪个注释。

现在您创立了一个特点来为给定的 公开恰当的方便办法Notwindows许可证即将过期怎么办e,导航回NoteL面试技巧和注意事项ist.swift。在下面增加以下办法performActionIfNeeded()

func updateShortcutItems() {
  UIApplication.shared.shortcutItems = notes.compactMap(.shortcutItem)
}

在这儿,您紧windows7旗舰版缩映射 notes 数组以生成仅包括非 nil 的数组UIApplicationShortcutItem。然后将此数组分配给UI面试常见问题及回答技巧A字符间距在哪里设置pplication‘s编辑器英语shortcutItems特点,该特点又与您在主屏幕菜单中的静态操作一字符间距怎么加宽同可用。

现在,您只需在运用程序进入后台时调用此办法。向上翻滚到onChange(of: perform:)您之前增加的修饰符并在 switch 语句windows11有必要升级吗中增加以下内容:

事例布景:
  updateShortcutItems()

构建并运转。然后看看有哪些项目可用:



耶!你完成了。

适用于 iOS 的主屏幕快速操作

对您的笔记进行一些修正,保藏一些并重复该过程。显现的注释以及订单在您后台运转运用程序时保持完美同步:



您可能现已留意到,并非一切笔记都显现出来。iOS 将操作数量约束为仅显现适合屏幕的笔记本显卡天梯图操作。可是,文档建议您不要专门约束动态操作的计数。相反,像 Note Buddy 那样做。

编辑器135样,iOS 将显现它能够习惯的一切快速操作。假如未来的更新能够完成更多功用,那字符就太好了,由于您无需在后台运用程序之前推出运用程序更新来支撑增加更多操作。

定论

有了它:您已预备好为您的运用程序和项目增加速速操作。

点击下载项目材料与检查原文

这儿也推荐一些面试相关的内容!

  • ① BAT等各个大厂iOS面试真题+答案大全

  • ② iOS中高级开发必看的抢手书籍(经典必看)

  • ③ iOS开发高级面试”简历制造”指导

  • ④ iOS面试流程到基础知识大全