ҪʵÏÖÎÒµÄÏë·¨£¬Ö»ÒªÓà CGRectContainsPoint() ·½·¨¼ì²éһϵ±Ç°µÄµãÊDz»ÊÇÔÚÄ¿±êÇøÓòÄÚ£¬Èç¹û²»ÊÇ·µ»Ø¿Õ¾ÍÐÐÁË¡£ÄÇô´úÂë¾Í¿ÉÒÔÕâÑùд£º
func previewingContext(previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { return CGRectContainsPoint(peekButton.frame, location) ? SFSafariViewController(URL: NSURL(string:"")!) : nil }Õâ¾ÍÊÇ×îÖÕЧ¹û£º
Èç¹ûÎÒÃÇѹϵÄÊÇ table µÄÒ»¸ö cell ÎÒÃÇ¿ÉÒÔÓà tableView.indexPathForRowAtPoint ·½·¨ÖØÐ»ñÈ¡Á˶ÔÓ¦µÄ cell ¶ÔÏó
¶¯×÷²Ëµ¥µ±ÎÒÃÇ´¥·¢ÁË Peek ÐÐΪ֮ºó£¬½«Ô¤ÀÀÊÓͼÏòÉÏÍÆÊ±¿ÉÒÔÔÚÏ·½³öÏÖÒ»¸öÓë ActionSheet ÀàËÆµÄ²Ëµ¥¿ìËÙ²Ù×÷µ±Ç°Ô¤ÀÀÏîÄ¿£¬Õâ¸ö¹¦ÄܾÍÊÇ UIViewControllerPreviewingDelegate µÄÁíÒ»¸ö·½·¨ previewActionItems ¡£Õâ¸ö·½·¨ÊµÏֺܼòµ¥£¬Ö»Êǽ«ÏîÄ¿µÄ¾ßÌå²Ù×÷ʵÏÖΪһ¸ö UIPreviewActionItem Êý×é²¢·µ»Ø¼´¿É£¬Õâ¸öºÍ ActionSheetµÄʵÏÖ·½·¨¼«ÎªÏàËÆ¡£
×¢£ºpreviewActionItems ÊÇÒ»¸ö UIViewController µÄÐÂÔö·½·¨
ÒÔÏ´úÂëʾÀýÊÇÉú³ÉÒ»¸ö´øÓС°É¾³ý¡±ºÍ¡°Íê³É¡±µÄ²Ëµ¥Ï
extension SFSafariViewController { override public func previewActionItems() -> [UIPreviewActionItem] { let deleteAction = UIPreviewAction(title: "ɾ³ý", style: UIPreviewActionStyle.Destructive, handler: { (previewAction,viewController) in NSLog("Delete") }) let doneAction = UIPreviewAction(title: "Íê³É", style: UIPreviewActionStyle.Default, handler: { (previewActin, viewController) in NSLog("Done") }) return [doneAction, deleteAction] } }ÔËÐÐЧ¹ûÈçÏ£º
ºÃÁ˶ÔÓÚPeekµÄ¿ØÖƾÍÊÇÕâô¶à£¬µ«´ËʱÈç¹ûÎÒÃÇÖØÑ¹´¥·¢ Pop »áÂíÉÏʲô¶¼Ã»ÓÐÁË£¡ÎªÊ²Ã´ÄØ£¿ÒòΪÎÒÃÇ»¹ÓÐÁíÒ»¸ö·½·¨»¹Ã»ÓÐʵÏÖÄØ£¬Õâ¸ö·½·¨ÊµÏÖÆðÀ´Ò²ºÜ¼òµ¥£¬Ö±½ÓÓà showViewController()·½·¨½«viewControllerToCommitÕâ¸ö²ÎÊý¸øÏÔʾ³öÀ´¾ÍÊÇÁË£¬´ÓÕâÀïÎÒÃǾͿÉÒԵóöÕâÑùµÄ½áÂÛÁË£¬peek ±»Ö´ÐкóËù·µ»ØµÄ ¿ØÖÆÆ÷ʵÀý½«»á±»´«µÝµ½ Õâ¸ö·½·¨µÄ commitViewController ÖС£
¾ßÌå´úÂëʵÏÖÈçÏ£º
func previewingContext(previewingContext: UIViewControllerPreviewing, commitViewController viewControllerToCommit: UIViewController) { showViewController(viewControllerToCommit, sender: self) }That's all! ½«ÒÔÉϵĴúÂëдºÃ Load µ½ÎÒÃǵÄÊÖ»úÉϾͿÉÒÔÌåÑéÕâ¸öСʾÀýÁË¡£ÓÐÒ»µã±È½ÏÒź¶µÄÊÇ£¬Ä£ÄâÆ÷ÊDz»ÄÜÄ£Äâ 3D Touch µÄ£¬Ö»ÄÜÔÚÕæ»úÉϵ÷ÊÔ£¬Ï£Íû Apple »áÔÚÏÂÒ»¸ö°æ±¾µÄ XCode ÖмÓÈë3D Touch µÄÄ£ÄâÆ÷Ö§³Ö¡£
×îºó£¬·îÉϱ¾ÎÄÕµÄÍêÕû´úÂëʾÀý£º https://github.com/DotNetAge/PeepPopExample
С½á¹ØÓÚ Application shortcut ÊǸö±È½Ïµ°Í´µÄ¹¦ÄÜ£¬ËäÈ»ËüÄÜÖ§³Ö¾²Ì¬Ó붯̬²Ëµ¥£¬µ«ÊÇдÆðÀ´ÄÚÈÝÒ²²»ÉÙ£¬ËùÒÔ½ñÌ컹ÊÇ´òËãÏÈдµ½ÕâÀï¡£ÒÔºóÔÙÕÒʱ¼äרÃÅдһƪ¹ØÓÚ Application shortcut µÄÎÄÕ°ɡ£
posted @
¡¡