iOS APP/SWIFT #6 : 10 Years Challenge

Practices for Outlet and Action

This time spent much time to collect the photos and marathon information. And the data resort. Include 23 races information and summarise.

Used objects :
1. UIImageView
2. UILabel
3. UIDataPicker (The position function is not workable, finally I change the size of the object to place at center)
4. UITextView
5. UISlider

import UIKit

class ViewController: UIViewController {

var index = 0
let marathonDates = [ "20130819", "20150412", "20150607", "20151101", "20151108", "20151122", "20151212", "20160102", "20160221", "20160313", "20160501", "20170212", "20181209", "20190113", "20190319", "20190907", "20191006", "20191110", "20200203", "20201031", "20220305", "20221113", "20221218" ]

let marathonNames = [ "阿甘路跑", "Skechers半馬", "天長地久馬", "艋舺馬", "田中馬", "海風馬", "世外桃源馬", "真武山超馬", "京都馬", "蘆竹馬", "台灣馬", "渣打馬", "台北馬", "渣打馬", "萬金石馬", "梅多克紅酒馬", "烏來馬", "板橋馬", "曼谷馬", "宜蘭國際馬", "太魯閣馬", "雅典馬", "比薩馬" ]

let marathonIntroductions = [
"""
地點:台北圓山

簡介:以健康、公益、關懷為主,而且是對視障人士最友善的路跑活動,讓市民了解台北城市之美,並培養健康的運動風氣。

備注:初入路跑叢林
""",

"""
地點:台北馬場町

簡介:夥伴的陪伴 讓慢跑變的充滿樂趣!
夥伴的激勵 讓慢跑可以持續下去!還可以不斷的挑戰自我。
以往我們都為自己而跑,這一次,夥伴們我們要一起創造團隊榮耀!
SKECHERS RUN前所未有路跑賽,首創以團體積分的方式,
邀請你以及你的最佳跑友們,一起參加『前所未有路跑團體賽』
挑戰極限,創造紀錄!!

備注:第一次參加跑步訓練班
""",

"""
地點:宜蘭三星

簡介:就要和您一起走我們的路,跑我們的步,一輩子的事,一個最簡單的堅持~

備注:第一次的全馬,真的跑到天長地久 😭
""",

"""
地點:台北萬華

簡介:盡情跑完後可以盡興享用賽後海霸王外燴辦桌餐會

備注:賽後餐會啤酒喝到飽🤪
""",

"""
地點:彰化田中

簡介:我們在田中為臺灣農業努力,歡迎全國跑者用您的腳步支持臺灣的智耕農,以您的步伐體驗稻香、米香、稻米故鄉-臺灣米倉田中小鎮!

備注:號稱補給最豐盛的路跑賽事,吃到跑不動
""",

"""
地點:桃園永安

簡介:為推廣全民體育運動休閒活動,結合桃園海岸風景、漁村風光及漁港特色,邀請各地運動愛好者桃園迎海風揮灑汗水,並享用新鮮便宜的海產美食。

備注:吃海風吃到飽,空氣品質堪慮
""",

"""
地點:桃園虎頭山

簡介:為提倡健康樂活運動,活動以提供國際等級路跑賽道、專業活動設備、 優質補級內容、熱情活潑志工、精彩順暢流程等,讓每一位參賽的選手得到最高規格 的尊重;並帶領所有選手進入桃園最美的楓樹坑社區,欣賞盛開波斯菊、油菜花迎風 搖曳丰姿,感受芒草花耀眼金黃;也能站在虎頭山巒,遠眺桃園市區美景,宛如置身 在世外桃源中,充分享受路跑運動健身的樂趣,讓更多的民眾認識桃園山區之美。

備注:楓樹坑跑兩圈,水餃跟米粉湯吃到飽
""",

"""
地點:台北新店

簡介:真武山一直都是最友善跑友的道教廟宇,更是臺灣超馬三太子的家,為讓更多人可以認識這正統道教文化及能在最接近都市叢林鄉野間盡情奔跑,讓你有奔馳在山林間的快感、享受山林裡那份寧靜與愜意,更是要將全新的真武山美景呈現給所有喜歡山徑挑戰的好朋友,希望能夠促進地方觀光產業發展,共同推廣超級馬拉松運動。

備注:第一次參加超馬,還選了山路,當真跑到傻掉
""",

"""
地點:日本京都

簡介:大家知道“DO YOU KYOTO?”这句口号吗?
这是仿照京都议定书(1997年在国立京都国际会馆召开的防止地球变暖京都会议<COP3>上通过的议定书,2005年2月16日生效。),表述了京都向全世界传递“是否做到了保护环境?”的含义。京都马拉松大会,延续「DO YOU KYOTO?马拉松」为主要理念,以「与环境先进都市・京都相称的大会」,实施各方各面的环境保护的同时,开展「保持地球与人们健康,从京都开始」等概念,目标打造成一个可持续发展的大会

備注:第一次的海外馬,路線涵蓋京都知名廟宇與鴨川沿岸,景點一次跑遍
""",

"""
地點:桃園竹圍

簡介:為讓更多人透過運動保持健康生活,更藉由參與路跑運動落實打造運動島健康活力城市的計畫,並飽覽蘆竹濱海、鄉村景緻、行銷竹圍漁港特色及美食,結合各機關、企業、社區讓所有市民共同參與路跑相關活動

備注:路線包含濱海快速道路,平坦好跑,但空氣品質堪慮
""",

"""
地點:桃園青埔

簡介:以台灣為名的路跑運動推廣賽事,每年都在不同的地點舉辦

備注:此次沿著青埔的高鐵路線往湖口方向跑,補給與動線規劃都具水準
""",

"""
地點:台北總統府

簡介:與跑者們共同打造全台灣最支持公益及永續理念,同時也是最歡樂的馬拉松

備注:號稱最容易創造個人最佳紀錄的賽事與賽道
""",

"""
地點:台北市政府

簡介:1986即開始舉辦的城市馬,臺北馬拉松成為臺灣第一個通過IAAF銅標籤認證的市區馬拉松

備注:台灣跑者大拜拜賽事,參加人數眾多,也是跑者年度訓練成果的檢驗賽事
""",

"""
地點:台北總統府

簡介:與跑者們共同打造全台灣最支持公益及永續理念,同時也是最歡樂的馬拉松

備注:第一次扛龍跑完全馬🐉
""",

"""
地點:新北萬里

簡介:2019新北市萬金石馬拉松邁入第17屆,持續延伸賽事的主題「#only WAN」的精神與目標,為台灣第一個國際田徑總會認證銀標賽事,並在2023年成為台灣第一個金標賽事。

備注:萬里、金山、石門沿路海風不小,且回程在金山段有波浪上坡,開始抽筋的路段
""",

"""
地點:法國波爾多

簡介:法國著名紅酒產地--波爾多,自1984年來都會盛大舉辦馬拉松路跑活動,吸引來自世界各地近萬名的跑者共襄盛舉!比賽同時不僅可享美酒美食,許多參賽者也會搭配當年主題進行角色扮演,吸睛度十足更添活動樂趣!

備注:沿路酒莊提供各種紅白酒與啤酒暢飲,尾段還提供牛排生蠔,氣氛歡樂輕鬆,唯一跑完還能笑的全馬賽事
""",

"""
地點:台北烏來

簡介:用馬拉松挑戰自我極限、用雙腳豐富精彩人生、用最環保的方式帶動地方休閒觀光產業發展、並讓國際友人有機會可以深入認識這個離台北最近的美麗仙境。

備注:緩上的山區路線,沿路欣賞山景,此次嚴重腹瀉可惜了豐盛的補給
""",

"""
地點:台北板橋

簡介:響應政府倡導全民體育,推動人口倍增計畫,提倡越野跑步健身運動。

備注:浮洲橋起跑,相同路線要繞兩圈,第一圈就抽筋,全馬要進步真難...
""",

"""
地點:泰國曼谷

簡介:豐田(Toyota)汽車主辦的一年一度的驚艷泰國曼谷馬拉松大賽,在曼谷的拉加曼加拉體育場開跑,參加的選手們經過曼谷的標誌性地標,例如:勝利紀念碑、大理石寺、拉差當能大道(泰國的香榭麗舍大道)、拉瑪八世橋以及金山寺等.

備注:起跑時間為凌晨三點,半夜12點就要出發搭接駁車前往體育場,全馬在高架道路折返點有一整排的按摩躺椅與服務人員為選手提供按摩服務,但是享用太久回程會遇上曼谷的大太陽與空污,所以要跑快一點😝
""",

"""
地點:宜蘭體育場

簡介:希望藉此活動鼓勵大家提升良好的運動習慣,將運動普及化、樂趣化及終身化,共同打造幸福、活力又健康的宜蘭。

備注:宜蘭的空氣與路線的平坦度真的很適合長跑,但最美的風景還是人🤣
""",

"""
地點:花蓮新城

簡介:全球唯一、世界級的峽谷美景賽道,盡在雲朗觀光太魯閣峽谷馬拉松。太魯閣峽谷馬拉松為跑者燃起夢想與渴望,賽道輔以翠綠綿延的山形背景與峽谷,陪伴跑者們一起為夢想前進,跑出花蓮太魯閣峽谷的壯闊與綺麗!

備注:新城火車站提供往返會場的接駁車,但是寄物處的規劃不佳,離起跑點接近兩公里,剛寄物完成就鳴槍起跑了
""",

"""
地點:希臘雅典

簡介:馬拉松起源的賽事,公元前490年的古希臘戰役,為了紀念士兵菲迪皮德斯而起。

備注:天氣冷(低於攝氏十度)且需要在起跑點等待一個多小時,需要注意保暖,路線的上坡路段長達30公里,宜採取保守配速
""",

"""
地點:義大利比薩

簡介:比賽從比薩市中心的奇蹟廣場開始,在著名的比薩斜塔旁的巴普斯特線結束。

備注:參賽人數不多,全馬與半馬選手同時起跑,難得能從起跑點就跟著四小時配速員,但是疏於練習26公里後就看不到配速氣球了🥲
"""
]

@IBOutlet weak var changeYear: UISlider!
@IBOutlet weak var originalImageView: UIImageView!
@IBOutlet weak var currentImageView: UIImageView!
@IBOutlet weak var originalMarathonName: UILabel!
@IBOutlet weak var currentMarathonName: UILabel!
@IBOutlet weak var originalMarathonDate: UIDatePicker!
@IBOutlet weak var currentMarathonDate: UIDatePicker!
@IBOutlet weak var marathonIntroduction: UITextView!
@IBOutlet weak var redColorNumber: UISlider!


override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let dayFormat = DateFormatter ()
dayFormat.dateFormat = "yyyyMMdd"

originalImageView.image = UIImage (named: marathonDates[0])
currentImageView.image = UIImage (named: marathonDates[22])
originalMarathonName.text = marathonNames[0]
currentMarathonName.text = marathonNames[22]
marathonIntroduction.text = marathonIntroductions[22]
originalMarathonDate.date = dayFormat.date(from: marathonDates[0])!
currentMarathonDate.date = dayFormat.date(from: marathonDates[22])!


}

@IBAction func yearChange(_ sender: UISlider) {

let dayFormat = DateFormatter ()
dayFormat.dateFormat = "yyyyMMdd"
index = Int((changeYear.value * 22))
originalImageView.image = UIImage (named: marathonDates[0])
currentImageView.image = UIImage (named: marathonDates[index])
originalMarathonName.text = marathonNames[0]
currentMarathonName.text = marathonNames[index]
marathonIntroduction.text = marathonIntroductions[index]
currentMarathonDate.date = dayFormat.date(from: marathonDates[index])!
}

}

The placement of Storyboard

I can’t upload Xcode file to GitHub and also can’t generate new Token in 23/Mar/2023. Maybe try later…->Upload…

--

--

ChengWen Lee
彼得潘的 Swift iOS / Flutter App 開發教室

After worked in office for 22 years, it is time to know the real word. I would like to be a Digital Nomad (Working everywhere) and on the way now~~~