iT邦幫忙

2022 iThome 鐵人賽

DAY 17
0
tags: 釣魚術 swift swiftui

雜談

  • 案牘勞形之一日,截稿前速速打磨一個樣板出來

示意圖

原始碼

//
//  AddPinAlert.swift
//  BaoAnGongFisher
//
//  Created by nipapa on 2022/9/22.
//

import SwiftUI

struct AddPinAlert: View {

    let screenSize = UIScreen.main.bounds
    @Binding var alertIsPresented: Bool
    @Binding var myLocationName: String
    @State var myLocationRank: String = "3"
    var boxTitle: String = "新增私房釣點?"

    var body: some View {
        VStack {
            Text(boxTitle)
            TextField("自訂名稱", text: $myLocationName)
                .textFieldStyle(RoundedBorderTextFieldStyle())
            Picker("", selection: $myLocationRank) {
                Text("不推").tag("1")
                Text("龜").tag("2")
                Text("普通 / 未知").tag("3")
                Text("好").tag("4")
                Text("超讚").tag("5")
            }
            Spacer()
            HStack (alignment: .center){
                Spacer()
                Button("好") {
                    alertIsPresented = false
                }
                Spacer()
                Button("取消") {
                    alertIsPresented = false
                }
                Spacer()
            }
        }
        .padding()
        .frame(width: screenSize.width * 0.6, height: screenSize.height * 0.25)
        .background(Color.cyan)
        .clipShape(RoundedRectangle(cornerRadius: 30, style: .continuous))
        .shadow(color: Color.gray, radius: 15, x: -1, y: -1)
    }
}

struct AddPinAlert_Previews: PreviewProvider {
    static var previews: some View {
        AddPinAlert(alertIsPresented: .constant(true), myLocationName: .constant(""))
    }
}

結語

  • State 與 Binding 關係,好似 Jojo 裡的替身使者與替身的關係 ...

上一篇
【Day 16】Swift UI - Human interface guidelines
下一篇
【Day 18】Swift UI - 私房釣點地圖自訂座標功能
系列文
無法成為釣魚大師也要努力摸魚!!辣個吃魚神器 APP38
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言