SwiftUI: отображение изображения в зависимости от дня года - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть 58 изображений в папке ресурсов на SwiftUI. Я заинтересован в том, чтобы отобразить изображение 1 для первого дня года, изображение 2 для второго дня года, изображение 3 для третьего дня года и т. Д. c. пока все 58 изображений не будут отображаться один раз в течение первых 58 дней в году.

Как только у всех изображений будет свой день, я бы хотел, чтобы процесс снова начался с изображения 1 в 59-й день года. Я хочу, чтобы этот циклический процесс повторялся до тех пор, пока все 365 дней в году не будут завершены. Это возможно? Как я могу начать работу?

Вот для чего я:

import SwiftUI

struct ContentView: View {var body: some View {

//if date = 1, then:   

    Image("Image 1")
    .resizable()
    .scaledToFit()

}

Этот процесс будет продолжаться для каждой даты в серии.

1 Ответ

0 голосов
/ 26 апреля 2020

Попробуйте назвать каждое изображение в папке ресурсов по номеру дня. Например, назовите первое изображение «1», второе «2» и т. Д. c. И используйте этот код для извлечения изображений.

import SwiftUI
import Foundation

struct ContentView: View { 
    var body: some View {
        Image(getImageName())
            .resizable()
            .scaledToFit()
    }

    private func getImageName() -> String {
        let day = Calendar.current.ordinality(of: .day, in: .year, for: Date())!
        let imagesCount = 58
        let imageName = day % imagesCount == 0 ? 1 : day % imagesCount
        return String(imageName)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...