/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠI ce Rock ĠMAG ĠInc . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġdev . icer ock . mo ko . widgets . factory Ċ Ċ import Ġdev . icer ock . mo ko . widgets . Scroll Widget Ċ import Ġdev . icer ock . mo ko . widgets . core . View Bundle Ċ import Ġdev . icer ock . mo ko . widgets . core . View Factory Context Ċ import Ġdev . icer ock . mo ko . widgets . style . view . Widget Size Ċ import Ġdev . icer ock . mo ko . widgets . utils . Edges Ċ import Ġdev . icer ock . mo ko . widgets . utils . apply Background Ċ import Ġdev . icer ock . mo ko . widgets . utils . apply Size To Child Ċ import Ġkotlinx . c interop . readValue Ċ import Ġplatform . Core Graphics . CG Float Ċ import Ġplatform . Core Graphics . C GRect Zero Ċ import Ġplatform . UIKit . UIS c roll View Ċ import Ġplatform . UIKit . UIS c roll View Keyboard Dismiss Mode Ċ import Ġplatform . UIKit . UI ViewController Ċ import Ġplatform . UIKit . add Sub view Ċ import Ġplatform . UIKit . bottom Anchor Ċ import Ġplatform . UIKit . leading Anchor Ċ import Ġplatform . UIKit . top Anchor Ċ import Ġplatform . UIKit . trans lates Auto res izing Mask Into Constraints Ċ import Ġplatform . UIKit . width Anchor Ċ Ċ actual Ġclass ĠDefault Scroll Widget View Factory Ġactual Ġconstructor ( ĊĠĠĠ Ġstyle : ĠStyle Ċ ) Ġ: ĠDefault Scroll Widget View Factory Base ( style ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġ< WS Ġ: ĠWidget Size > Ġbuild ( ĊĠĠĠĠĠĠĠ Ġwidget : ĠScroll Widget < out ĠWidget Size >, ĊĠĠĠĠĠĠĠ Ġsize : ĠWS , ĊĠĠĠĠĠĠĠ Ġview Factory Context : ĠView Factory Context ĊĠĠĠ Ġ): ĠView Bundle < WS > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Controller : ĠUI ViewController Ġ= Ġview Factory Context ĊĊĠĠĠĠĠĠĠ Ġval Ġscroll View Ġ= ĠU IS c roll View ( frame Ġ= ĠC GRect Zero . readValue ()). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrans lates Auto res izing Mask Into Constraints Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalways Bo unce Vertical Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Dismiss Mode Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU IS c roll View Keyboard Dismiss Mode . UIS c roll View Keyboard Dismiss Mode Interactive ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Background ( style . background ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġchild Bundle Ġ= Ġwidget . child . build View ( view Controller ) ĊĠĠĠĠĠĠĠ Ġval Ġchild View Ġ= Ġchild Bundle . view ĊĠĠĠĠĠĠĠ Ġchild View . trans lates Auto res izing Mask Into Constraints Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġwith ( scroll View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Sub view ( child View ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedges : ĠEd ges < CG Float > Ġ= Ġapply Size To Child ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot Padding Ġ= Ġstyle . padding , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild View Ġ= Ġchild View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Size Ġ= Ġchild Bundle . size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Margins Ġ= Ġchild Bundle . margin s ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild View . top Anchor . constraint EqualTo Anchor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanchor Ġ= Ġtop Anchor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstant Ġ= Ġedges . top ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). active Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild View . leading Anchor . constraint EqualTo Anchor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanchor Ġ= Ġleading Anchor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstant Ġ= Ġedges . leading ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). active Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild View . width Anchor . constraint EqualTo Anchor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanchor Ġ= Ġwidth Anchor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstant Ġ= Ġ-( edges . trailing Ġ+ Ġedges . leading ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). active Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Layout Guide . width Anchor . constraint EqualTo Anchor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanchor Ġ= Ġchild View . width Anchor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). active Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Layout Guide . bottom Anchor . constraint EqualTo Anchor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanchor Ġ= Ġchild View . bottom Anchor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstant Ġ= Ġedges . bottom ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). active Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠView Bundle ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= Ġscroll View , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= Ġsize , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmargins Ġ= Ġstyle . margin s ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ