#01 模仿一頁 Netflix畫面
Published in
4 min readOct 2, 2023
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
原圖、結果展示:
左邊是原始圖片,右邊是用 SwiftUI 模仿出來的畫面
一開始用position做法,後來改用stack排列,用spacer、offset、padding調整。最耗時的是微調各種細節跟間距,但是出來的成果很滿意。
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
重要程式碼:
整個畫面主要是垂直排列,靠左邊
顯示圖片與文字
VStack{
VStack(alignment: .leading){// 向左對齊
Image("0")
.resizable()
.scaledToFill()
.frame(width: 400, height: 210)
Text("魔法公主")
.font(.title3)
.bold()
.padding(.leading,15)
.padding(.top,5)
}
}
水平排列三張圖,等間距排列
HStack{
Image("1")
.resizable()
.scaledToFill()
.frame(width: 116, height: 157)
.padding(.leading,15)
.clipShape(RoundedRectangle(cornerRadius: 5))
Spacer()
Image("2")
.resizable()
.scaledToFill()
.frame(width: 116, height: 157)
.clipShape(RoundedRectangle(cornerRadius: 5))
Spacer()
Image("3")
.resizable()
.scaledToFill()
.frame(width: 116, height: 157)
.padding(.trailing,15)
.clipShape(RoundedRectangle(cornerRadius: 5))
}
文字太長需要換行的寫法(防止文字被切到)
Text("中了致命詛咒的王子出發尋找解方,卻涉入一場礦城和山獸神森林間的戰鬥。")
.font(.footnote)
.padding()
.offset(x:-14)
.fixedSize(horizontal: false, vertical: true)//文字被切到
.padding(.leading,15)
使用SF Symbols 裡的小圖案
VStack{
Image(systemName: "hand.thumbsup")
.resizable()
.scaledToFit()
.frame(width: 22, height: 22)
.foregroundColor(Color.white)
.padding(.leading,60)
.padding(.top,13)
Text("評分")
.foregroundColor(.gray)
.font(.caption)
.padding(.leading,60)
.padding(.top,5)
}
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Github:
我的Github:https://github.com/wenchi1116/hw1