logo头像
Snippet 博客主题

3DTouch总结

  1. 图标按钮
  • 在appDelegate中实现这个方法

    1
    2
    3
    4
    5
    6
    //3DTouch
    func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
    if shortcutItem.type == "OpenDoor" {
    root?.openDoorBtn.sendActions(for: .touchUpInside)
    }
    }
  • 在info.plist中实现一些属性

  1. 程序内的3DTouch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
self.registerForPreviewing(with: self, sourceView: self.tableView)


func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
guard let index = tableView.indexPathForRow(at: location)else{
return nil
}

let cell = tableView.cellForRow(at: index)
let model = self.dataSource[index.row]
let detailVC = NoticeDetailController()
detailVC.model = model
detailVC.preferredContentSize = CGSize(width:0,height:0)
previewingContext.sourceRect = cell!.frame

return detailVC
}