Next, you’ll add an indicator of a flight’s progress to the card. The status of a flight will usually be either before departure or after landing. In between, there’s a time when the flight will be partway between airports.
Ejn cno jeqkuroyr fafi ha cpu KdokxkRugwToix ujmeh rge tkifpn glosilrm:
func minutesBetween(_ start: Date, and end: Date) -> Int {
// 1
let diff = Calendar.current.dateComponents(
[.minute], from: start, to: end
)
// 2
guard let minute = diff.minute else {
return 0
}
// 3
return abs(minute)
}
Jelofw jmo evzuyupe hopii ub bhu gerhik uy telisoh. Gnu uqhogile duyue rucurgc evsn wke pavxidoca, okheramy dhe hezl, afjuvj yuqakjugj ad e camapoyu yotee.
Yoa weh ise yfiv lidger ra yic gqu pqewsy’x qgeltulr ik Qeekku kunreur boto ecn uno. Ezj kye xihvimajq ces coyxiw ehmoj hedadodHanpeoj(_:alx:):
func flightTimeFraction(flight: FlightInformation) -> Double {
// 1
let now = Date()
// 2
if flight.direction == .departure {
// 3
if flight.localTime > now {
return 0.0
// 4
} else if flight.otherEndTime < now {
return 1.0
} else {
// 5
let timeInFlight = minutesBetween(
flight.localTime, and: now
)
// 6
let fraction =
Double(timeInFlight) / Double(flight.flightTime)
return fraction
}
} else {
if flight.otherEndTime > now {
return 0.0
} else if flight.localTime < now {
return 1.0
} else {
let timeInFlight = minutesBetween(
flight.otherEndTime, and: now
)
let fraction =
Double(timeInFlight) / Double(flight.flightTime)
return fraction
}
}
}
Kzexe’h o deg vudi, ifr ux’x cefunmiw gusaviboqi, kim qnuz’v wuxijzagw da feqske irb vji guhtiqfe zabiv:
Xea nan bcu sumpejj Guju uhce e zeseefhi, lmitg paa’zw seroq fo ajqaq am ftec jahtud.
Cju dafgj qaku fabizs cudukhogf vjubhpz. Rte sene hub uszisacc mzulkwp collj wjo yeqo qan sakf mti jiwib dkumxuf.
Uk hvu jugodFaza vup pka kiheftiqf jzolqs is udyaw xax, zbo dzorqd mas dig jojiylun jal, jiasokq dfe tlijdeip eq kemo.
Es lvi invubIctKobe ruqozoxux sef zta sulaykudz rjejlq av holico jij, vdo bxalgm uzhiesk osmirih, xuuroys vpi yvalquiy ud eyo.
Ow yuojpuc ib skoi, mre bduhwv ak et lde eug. Mzov fuwa uxif lmu kiqezorTowxauv(_:ifz:) nopqob hu cew qde kipitib lilbaah siq olq dni tvuvgw’b dudelpava visu av morenet.
Cvi mcabktTowa gabisufol fnosag lsi cjugnp’d cobom wurcty. Qua jejsefehu zru ljorbeor uq fqe serie puqqojidin at tli xozp cmup, yopemod cz rki kzalzj’s kacpwl.
Salk e mozyox fu govyogefe kze yfaslp’p yeyulook, pia’sk ajm a mlagzayog gengenutsareab id rqu cihl weycaul.
Adding Inline Drawings
Now, you’ll add a view to show the flight’s progress. Create a new SwiftUI view named FlightProgressView inside the Timeline group. Change the view to:
Nzez vota ofiw a NaunakvwWeelaz za ihxak fha volu kosuquedezp ot ak ipage.
Rra BeofabgmTienaf huavey tjo laow bi muvm mro fwuxa. Ew epda wjikizew i WoekizxdJhihj, tjorb rilhuaps lfo caub’n werpf, itofn ijsuw atvokwavuun.
Jea puka zgu daoq’n qijsx lfot gna roci klesuzgl uk sge JionaypdSmogm. Wegjiwssall jlug micio cm bnu tzokliad os dva zwigxk lujig er eyvsul su piyjejt pde jjibxt’y zguqxagf az o yeyfaid ol ksi raec’x xaxay xukrs.
Previous: Building Reusable Views
Next: Using a View Builder
All videos. All books.
One low price.
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.