- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
import SwiftUI
struct LandmarkDetail: View {
@EnvironmentObject var userData: UserData
var landmark: Landmark
var landmarkIndex: Int {
userData.landmarks.firstIndex(where: { $0.id == landmark.id })!
}
var body: some View {
VStack {
MapView(landmark: landmark)
.frame(height: 300)
CircleImage(image: landmark.image(forSize: 250))
.offset(y: -130)
.padding(.bottom, -130)
VStack(alignment: .leading) {
HStack {
Text(landmark.name)
.font(.title)
Button(action: {
self.userData.landmarks[self.landmarkIndex].isFavorite.toggle()
}) {
if self.userData.landmarks[self.landmarkIndex].isFavorite {
Image(systemName: "star.fill")
.foregroundColor(Color.yellow)
} else {
Image(systemName: "star")
.foregroundColor(Color.gray)
}
}
}
HStack(alignment: .top) {
Text(landmark.park)
.font(caption)
Spacer()
Text(landmark.state)
.font(.caption)
}
}
.padding()
Spacer()
}
.navigationBarTitle(Text(landmark.name), displayMode: .inline)
}
}
Винапи вместо гуя.
> красиво
Ты серьёзно? Открой любой сишный пример по винапишным диалогам и найди 10 отличий...
> описание диалога
Обычный винапишный .rc файл в овечьей шкуре. Даже айдишки вручную придумывать надо. Вот только в оригинале эту хуйню можно было наформошлёпить, а тут?
> обработка сообщений
Винапишных сообщений через свичи как в сишке, охуеть декларативность.
А внизу вообще ехал хвынд через лпарам...
Но всё таки нет, это программный кот, да к тому же расширяемый. Прямо в сишкокоде такого не напишешь.
> можно было наформошлёпить, а тут?
Что-то я не нашёл такого :(
> через свичи как в сишке, охуеть декларативность.
Свитчь —– декларативная конструкция, к тому же здесь нет явных вызовов многих функций которые были бы в сишкокоде, и циклы писать не надо.
А ещё эту фигню можно набирать репле и тут же тестировать!
> прямо в сишкококоде
Напишешь. Макросами высрать эту пачку DLGITEMTEMPLATE не составляет труда. Функциями в рантайме - тем более.
> репле
Это фича форта, а не этой тончайшей говнообёртки над винапи.
Этот чит — тарасоформатирование™.