LOTR Converter (3)
Info View 디자인하기
우선 파일을 하나 생성해주고
이때 UIkit을 할때는 Swift File을 했지만
이제는 아래에 있는 SwiftUI View로 만들어 준다.
그리고 다음과 같이 큰 틀을 짜준다.
struct ExchangeInfo: View {
var body: some View {
ZStack {
// Background parchment image
VStack {
// Title text
// Description...
LOTR Converter (2)
Info Button 추가하기
기본적인 틀이 만들어졌으니, 버튼을 추가해보도록한다.
우선 버튼 디자인을 할 것인데,
Button {
} label: {
Image(systemName: "info.circle.fill")
}
.font(.largeTitle)
.foregroundStyle(.white)
이렇게 해준다.
이전의 글에 있었던 마지막 화면과 동일하므로 이미지는 패스
label에 이미지를 넣고 버튼의 이미지를...
LOTR Converter (1)
VHZStack
이미지로 간단하게 설명이 가능하다.
V: Vertical
H: Horizontal
Z는 그냥 Z Axis인듯하다.
우리가 최종적으로 만들 앱의 Structure는 다음과 같이 될것이다.
VHZStack도 View 라는것을 꼭 기억해두자.
뼈대 구성하기
여기 강의에서는 먼저 어떻게 할지 이미지화를 하고 그것에 대해서 크게 뼈대를 잡는 식으로 하였다.
구성은 위와 같다.
struct ContentView: View {
var body: some View {
ZStack {
// Background Image
...
Math Function Charts
차트를 구현해보려한다.
TripsChart라는 새로운 파일을 만들어주고
import Charts를 해주자.
1. 샘플 데이터 모델링
struct SampleTripRating {
let trip: Int
let rating: Int
static let ratings: [SampleTripRating] = [
SampleTripRating(trip: 1, rating: 55),
SampleTripRating(trip: 2, rating: 27),
SampleTripRating(trip: 3, rating: 67),
Samp...
SwiftCharts
차트를 구현해보려한다.
VegasChart라는 새로운 파일을 만들어주고
import Charts를 해주자.
1. 샘플 데이터 모델링
struct SampleRating {
let place: String
let rating: Int
static let ratings: [SampleRating] = [
SampleRating(place: "Bellagio", rating: 88),
SampleRating(place: "Paris", rating: 75),
SampleRating(place: "Treasure Island", rating:...
MapKit
MapView 파일을 하나 만들어준다.
그리고 MapKit을 import 해주자.
지도를 화면에 보여주는건 아주 간단하다
그냥 Map()을 적으면 된다.
struct MapView: View {
var body: some View {
Map()
}
}
이렇게 바로 지도가 보이게 된다.
1. 설정한 지역을 보이게 구현하기
우리가 이전에 Place를 통해 여러 샘플의 좌표를 지정해두었다.
그것을 활용해서 지도에 보여지게 해보자.
우선 preview에 다음과 같이 적어보자
#Preview {
MapView(place: Place.previewPlaces[0], ...
SwiftData
EmptyFile을 하나 만들어주고 이름을 Place.swift로 해주었다.
그리고 3가지를 import해준다.
import SwiftData
import SwiftUI
import MapKit
1. Data Modeling
새로운 파일을 만들어서 모델링을 해도 되지만 여기서는 하나의 파일에 하는것같다.
한가지 새로운점이라면 @Model을 사용했다는 점이다.
@Model
class Place {
#Unique<Place>([\.name, \.latitude, \.longitude])
@Attribute(.unique) var name: String
var lat...
631 post articles, 79 pages.