package Ġscreens Ċ Ċ import Ġcom . kotlin conf . library . feature . main Map . presentation . Map ViewModel Ċ import Ġcommon . Feedback Generator Ċ import Ġcommon . fill Container Ċ import Ġcommon . fill Super view Ċ import Ġkotlinx . c interop . Obj C Action Ċ import Ġplatform . Core Graphics . C GRect Get Height Ċ import Ġplatform . Core Graphics . C GRect Get Width Ċ import Ġplatform . Core Graphics . C GRect Make Ċ import Ġplatform . Core Graphics . CG Size Make Ċ import Ġplatform . Foundation . N SC oder Ċ import Ġplatform . Foundation . NS Number Ċ import Ġplatform . Foundation . NS Selector FromString Ċ import Ġplatform . Qu artz Core . CAS hape Layer Ċ import Ġplatform . UIKit . NS Layout Constraint Ċ import Ġplatform . UIKit . UI Alert Action Ċ import Ġplatform . UIKit . UI Alert Action Style Cancel Ċ import Ġplatform . UIKit . UI Alert Controller Ċ import Ġplatform . UIKit . UI Alert Controller Style Alert Ċ import Ġplatform . UIKit . UI Bezier Path Ċ import Ġplatform . UIKit . UI Button Ċ import Ġplatform . UIKit . UI Color Ċ import Ġplatform . UIKit . UI Control Event Touch Up Inside Ċ import Ġplatform . UIKit . UI Font Ċ import Ġplatform . UIKit . UI Image Ċ import Ġplatform . UIKit . UI ImageView Ċ import Ġplatform . UIKit . U IL abel Ċ import Ġplatform . UIKit . U IL ong Press Gesture Recognizer Ċ import Ġplatform . UIKit . UI Rect Corner Top Left Ċ import Ġplatform . UIKit . UI Rect Corner Top Right Ċ import Ġplatform . UIKit . UIS c roll View Ċ import Ġplatform . UIKit . UIS c roll View Delegate Protocol Ċ import Ġplatform . UIKit . UI View Ċ import Ġplatform . UIKit . UI ViewController Ċ import Ġplatform . UIKit . add Gesture Recognizer Ċ import Ġplatform . UIKit . add Sub view Ċ import Ġplatform . UIKit . animate With Duration Ċ import Ġplatform . UIKit . backgroundColor Ċ import Ġplatform . UIKit . bottom Anchor Ċ import Ġplatform . UIKit . center X Anchor Ċ import Ġplatform . UIKit . center Y Anchor Ċ import Ġplatform . UIKit . height Anchor Ċ import Ġplatform . UIKit . layout IfNeeded Ċ import Ġplatform . UIKit . left Anchor Ċ import Ġplatform . UIKit . navigation Controller Ċ import Ġplatform . UIKit . right Anchor Ċ import Ġplatform . UIKit . set Hidden Ċ import Ġplatform . UIKit . top Anchor Ċ import Ġplatform . UIKit . trans lates Auto res izing Mask Into Constraints Ċ import Ġplatform . UIKit . width Anchor Ċ import Ġviews . Collect Word View Ċ import Ġviews . Spot Distance View Ċ import Ġkotlin . math . min ĊĊ Ċ class ĠMain Screen ViewController Ġ: ĠUI ViewController , ĠU IS c roll View Delegate Protocol Ġ{ ĊĠĠĠ Ġprivate Ġval Ġscroll View : ĠU IS c roll View Ġ= ĠU IS c roll View () ĊĠĠĠ Ġprivate Ġval Ġcontrol Word Container View : ĠUIView Ġ= ĠUIView () ĊĠĠĠ Ġprivate Ġval Ġcollect Word View : ĠCollect Word View Ġ= ĊĠĠĠĠĠĠĠ ĠCollect Word View ( frame Ġ= ĠC GRect Make ( 0 . 0 , Ġ 0 . 0 , Ġ 0 . 0 , Ġ 0 . 0 )) ĊĠĠĠ Ġprivate Ġval Ġshadow Layer : ĠC AS hape Layer Ġ= ĠC AS hape Layer () ĊĠĠĠ Ġprivate Ġval Ġrounded C orners Mask Layer : ĠC AS hape Layer Ġ= ĠC AS hape Layer () ĊĠĠĠ Ġprivate Ġval Ġshadow View : ĠUIView Ġ= ĠUIView () ĊĠĠĠ Ġprivate Ġval Ġmap ImageView : ĠUI ImageView Ġ= ĠUI ImageView ( UI Image . image Named (" map Image ")) ĊĠĠĠ Ġprivate Ġval Ġhint Button : ĠUI Button Ġ= ĠUI Button . button WithType ( 3 ) ĊĠĠĠ Ġprivate Ġval Ġstrength Label : ĠU IL abel Ġ= ĠU IL abel () ĊĠĠĠ Ġprivate Ġval Ġspot Distance View : ĠSpot Distance View Ġ= ĠSpot Distance View ( frame Ġ= ĠC GRect Make ( 0 . 0 , Ġ 0 . 0 , Ġ 0 . 0 , Ġ 0 . 0 )) ĊĠĠĠ Ġprivate Ġval Ġfeedback Generator : ĠFeedback Generator Ġ= ĠFeedback Generator () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġspot Distance View Width Constraint : ĠNS Layout Constraint ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠMap ViewModel ĊĊĠĠĠ Ġ@ Override Init ĊĠĠĠ Ġconstructor () Ġ: Ġsuper ( nib Name Ġ= Ġnull , Ġbundle Ġ= Ġnull ) ĊĊĠĠĠ Ġ@ Override Init ĊĠĠĠ Ġconstructor ( coder : ĠN SC oder ) Ġ: Ġsuper ( coder ) ĊĊĠĠĠ Ġoverride Ġfun Ġview Did Load () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . view Did Load () ĊĊĠĠĠĠĠĠĠ Ġwith ( view ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠUI Color . white Color ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Sub view ( scroll View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Sub view ( shadow View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Sub view ( control Word Container View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Sub view ( strength Label ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Sub view ( spot Distance View ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . scroll View . add Sub view ( this . map ImageView ) ĊĠĠĠĠĠĠĠ Ġthis . control Word Container View . add Sub view ( this . collect Word View ) ĊĠĠĠĠĠĠĠ Ġthis . control Word Container View . add Sub view ( this . hint Button ) ĊĊĠĠĠĠĠĠĠ Ġthis . shadow View . backgroundColor Ġ= ĠUI Color . white Color ĊĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscroll View , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontrol Word Container View , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshadow View , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap ImageView , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcollect Word View , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhint Button , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstrength Label , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspot Distance View ĊĠĠĠĠĠĠĠ Ġ). forEach Ġ{ Ġit . trans lates Auto res izing Mask Into Constraints Ġ= Ġfalse Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . spot Distance View . center X Anchor . constraint EqualTo Anchor ( this . view . right Anchor , Ġconstant Ġ= Ġ- 7 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setActive ( true ) ĊĠĠĠĠĠĠĠ Ġthis . spot Distance View . center Y Anchor . constraint EqualTo Anchor ( this . view . top Anchor , Ġconstant Ġ= Ġ 8 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setActive ( true ) ĊĠĠĠĠĠĠĠ Ġthis . spot Distance View Width Constraint Ġ= Ġthis . spot Distance View . width Anchor . constraint EqualTo Constant ( 8 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġthis . spot Distance View . height Anchor . constraint EqualTo Anchor ( this . spot Distance View . width Anchor ). setActive ( true ) ĊĊĠĠĠĠĠĠĠ Ġthis . spot Distance View Width Constraint . setActive ( true ) ĊĊĠĠĠĠĠĠĠ Ġthis . collect Word View . top Anchor . constraint EqualTo Anchor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . shadow View . top Anchor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstant Ġ= Ġ 2 0 . 0 ĊĠĠĠĠĠĠĠ Ġ). setActive ( true ) ĊĊĠĠĠĠĠĠĠ Ġthis . collect Word View . bottom Anchor . constraint EqualTo Anchor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . shadow View . bottom Anchor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstant Ġ= Ġ- 3 0 . 0 ĊĠĠĠĠĠĠĠ Ġ). setActive ( true ) ĊĊĠĠĠĠĠĠĠ Ġthis . collect Word View . center X Anchor . constraint EqualTo Anchor ( this . shadow View . center X Anchor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setActive ( true ) ĊĊĠĠĠĠĠĠĠ Ġthis . hint Button . top Anchor . constraint EqualTo Anchor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . control Word Container View . top Anchor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstant Ġ= Ġ 2 0 . 0 ĊĠĠĠĠĠĠĠ Ġ). setActive ( true ) ĊĊĠĠĠĠĠĠĠ Ġthis . hint Button . right Anchor . constraint EqualTo Anchor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . control Word Container View . right Anchor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstant Ġ= Ġ- 2 0 . 0 ĊĠĠĠĠĠĠĠ Ġ). setActive ( true ) ĊĊĠĠĠĠĠĠĠ Ġthis . scroll View . left Anchor . constraint EqualTo Anchor ( this . view . left Anchor ). setActive ( true ) ĊĠĠĠĠĠĠĠ Ġthis . scroll View . top Anchor . constraint EqualTo Anchor ( this . view . top Anchor ). setActive ( true ) ĊĠĠĠĠĠĠĠ Ġthis . scroll View . right Anchor . constraint EqualTo Anchor ( this . view . right Anchor ). setActive ( true ) ĊĠĠĠĠĠĠĠ Ġthis . scroll View . bottom Anchor . constraint EqualTo Anchor ( this . shadow View . top Anchor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setActive ( true ) ĊĠĠĠĠĠĠĠ Ġthis . scroll View . backgroundColor Ġ= ĠUI Color . white Color ĊĊĠĠĠĠĠĠĠ Ġthis . shadow View . left Anchor . constraint EqualTo Anchor ( this . view . left Anchor ). setActive ( true ) ĊĠĠĠĠĠĠĠ Ġthis . shadow View . right Anchor . constraint EqualTo Anchor ( this . view . right Anchor ). setActive ( true ) ĊĠĠĠĠĠĠĠ Ġthis . shadow View . bottom Anchor . constraint EqualTo Anchor ( this . view . bottom Anchor ). setActive ( true ) ĊĊĠĠĠĠĠĠĠ Ġthis . strength Label . left Anchor . constraint EqualTo Anchor ( this . scroll View . left Anchor ). setActive ( true ) ĊĠĠĠĠĠĠĠ Ġthis . strength Label . top Anchor . constraint EqualTo Anchor ( this . scroll View . top Anchor ). setActive ( true ) ĊĊĠĠĠĠĠĠĠ Ġthis . strength Label . textColor Ġ= ĠUI Color . red Color ĊĠĠĠĠĠĠĠ Ġthis . strength Label . font Ġ= ĠU IF ont . bold System Font Of Size ( 3 0 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġthis . strength Label . set Hidden ( true ) ĊĊĠĠĠĠĠĠĠ Ġthis . control Word Container View . fill Container ( this . shadow View ) ĊĊĠĠĠĠĠĠĠ Ġthis . map ImageView . fill Super view () ĊĊĠĠĠĠĠĠĠ Ġthis . collect Word View . backgroundColor Ġ= ĠUI Color . white Color ĊĊĠĠĠĠĠĠĠ Ġthis . collect Word View . setText (" K OT LIN ") ĊĠĠĠĠĠĠĠ Ġthis . collect Word View . set Collected Letters Count ( 0 ) ĊĊĠĠĠĠĠĠĠ Ġwith ( control Word Container View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( layer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmask Ġ= Ġthis @ Main Screen ViewController . rounded C orners Mask Layer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmask sTo Bounds Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠUI Color . white Color ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( shadow View . layer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert Sub layer ( layer Ġ= Ġthis @ Main Screen ViewController . shadow Layer , Ġat Index Ġ= Ġ 0 u ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmask sTo Bounds Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( shadow Layer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshadow Opacity Ġ= ĠNS Number ( 0 . 4 5 ). float Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmask sTo Bounds Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshadow Radius Ġ= Ġ 4 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshadow Color Ġ= ĠUI Color . black Color . CG Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshadow Offset Ġ= ĠCG Size Make ( width Ġ= Ġ 0 . 0 , Ġheight Ġ= Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( scroll View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetShow s Horizontal Scroll Indicator ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetShow s Vertical Scroll Indicator ( false ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġminimum Zoom Scale Ġ= Ġ 0 . 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaximum Zoom Scale Ġ= Ġ 1 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġzoom Scale Ġ= Ġminimum Zoom Scale ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate Ġ= Ġthis @ Main Screen ViewController ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . hint Button . add Target ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġplatform . darwin . sel _ register Name (" hint Button T apped "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Control Events Ġ= ĠUI Control Event Touch Up Inside ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġthis . collect Word View . did Long Tap ImageView Block Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . viewModel . reset Cookies Button T apped () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlong Tap Gesture Ġ= ĠU IL ong Press Gesture Recognizer ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= ĠNS Selector FromString (" spot Search Long Press ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġlong Tap Gesture . minimum Press Duration Ġ= Ġ 2 . 0 ĊĠĠĠĠĠĠĠ Ġthis . spot Distance View . add Gesture Recognizer ( long Tap Gesture ) ĊĠĠĠĠĠĠĠ Ġthis . spot Distance View . setUser Interaction Enabled ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġview Will Ap pear ( animated : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . view Will Ap pear ( animated ) ĊĊĠĠĠĠĠĠĠ Ġthis . navigation Controller ?. set NavigationBar Hidden ( true , Ġanimated Ġ= Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġview Did Dis appear ( animated : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . view Did Dis appear ( animated ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( this . is Moving From Parent ViewController ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Cle ared () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġview Will Layout Sub views () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . view Will Layout Sub views () ĊĊĠĠĠĠĠĠĠ Ġthis . scroll View . minimum Zoom Scale Ġ= Ġmin ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC GRect Get Width ( this . scroll View . frame ) Ġ/ ĠC GRect Get Width ( this . map ImageView . frame ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC GRect Get Height ( this . scroll View . frame ) Ġ/ ĠC GRect Get Height ( this . map ImageView . frame ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġthis . scroll View . zoom Scale Ġ= Ġ 1 . 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġview Did Layout Sub views () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . view Did Layout Sub views () ĊĊĠĠĠĠĠĠĠ Ġthis . shadow Layer . frame Ġ= Ġthis . control Word Container View . bounds ĊĊĠĠĠĠĠĠĠ Ġval Ġpath : ĠUI Bezier Path Ġ= ĠUI Bezier Path . bezier Path With Rounded Rect ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrect Ġ= Ġthis . control Word Container View . bounds , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġby Round ing C orners Ġ= ĠU IR ect Corner Top Left . or ( UI Rect Corner Top Right ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcorner Rad ii Ġ= ĠCG Size Make ( 1 6 . 0 , Ġ 1 6 . 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġthis . shadow Layer . shadow Path Ġ= Ġpath . CG Path ĊĊĠĠĠĠĠĠĠ Ġthis . rounded C orners Mask Layer . path Ġ= Ġpath . CG Path ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind ViewModel ( viewModel : ĠMap ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . load View IfNeeded () ĊĊĠĠĠĠĠĠĠ Ġthis . viewModel Ġ= ĠviewModel ĊĊĠĠĠĠĠĠĠ ĠviewModel . current Step . add Observer Ġ{ Ġstep : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . collect Word View . set Collected Letters Count ( step ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . hint Button Enabled . add Observer Ġ{ Ġenabled : ĠBoolean Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . hint Button . setEnabled ( enabled ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . signal Strength . add Observer Ġ{ Ġstrength : ĠFloat ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . strength Label . text Ġ= Ġ"$ strength " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . feedback Generator . feedback ( strength Ġ?: Ġ 0 . 0 f ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . search ViewState . add Observer Ġ{ Ġstate : ĠMap ViewModel . Search ViewState Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( state Ġis ĠMap ViewModel . Search ViewState . No Task ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . spot Distance View Width Constraint . set Constant ( 8 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . spot Distance View Width Constraint . set Constant ( 1 0 0 . 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠUIView . animate With Duration ( 0 . 2 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . view . layout IfNeeded () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . spot Distance View . setState ( state ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . request Permissions () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Obj C Action ĊĠĠĠ Ġprivate Ġfun Ġhint Button T apped () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . viewModel . hint Button T apped () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Obj C Action ĊĠĠĠ Ġprivate Ġfun Ġspot Search Long Press () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġalert Ġ= ĠUI Alert Controller . alert Controller With Title ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" cookie : Ġ${ viewModel . cookie () }", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreferred Style Ġ= ĠUI Alert Controller Style Alert ĊĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Action ( UI Alert Action . action With Title ( title Ġ= Ġ" Close ", Ġstyle Ġ= ĠUI Alert Action Style Cancel , Ġhandler Ġ= Ġnull )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpresent ViewController ( alert , Ġanimated Ġ= Ġtrue , Ġcompletion Ġ= Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġview For Zoom ing In ScrollView ( scroll View : ĠU IS c roll View ): ĠUIView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . map ImageView ĊĠĠĠ Ġ} Ċ } Ċ