Разблокировать контент на основе дня (приложение для iOS с Xcode) - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь создать приложение, в котором вы можете разблокировать определенную картинку каждый день в течение декабря, например, календарь событий.

Таким образом, если пользователь нажимает кнопку в течение определенного дня (у всех дней есть кнопка с включенной датой), приложение должно сравнить текущую дату на устройстве с датой разблокировки. Например:

Если пользователь нажимает кнопку для 01.12.18 (дд.мм.гг) и в данный момент это происходит в тот или любой другой день, он должен отобразить изображение номер один. Иначе: (если день еще не наступил) пользователь увидит другую картинку, на которой написано что-то. как "Вы слишком рано! Пожалуйста, подождите еще немного."

Любые предложения или примеры кодов очень ценятся!

Прототип кода выглядит так:

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
}

@IBOutlet weak var dailyContent: UIImageView!

@IBAction func türchen1Button(_ sender: Any) {

    // if 01.12.18 (dd.MM.yy) is today or past today
    //      dailyContent.image = picture1
    //
    // else if 01.12.18 (dd.MM.yy) is in the future
    //      dailyContent.image = pictureTooEarly
   }
}

Это приложение должно быть подарком моей девушке, и я ценю любую помощь! Заранее спасибо! Benjamin

1 Ответ

0 голосов
/ 19 ноября 2018
  • Назначьте теги 1 - 24 кнопкам, которые представляют дни.
  • Используйте one IBAction и подключите все кнопки к этому действию.

    @IBAction func türchenButton(_ sender: UIButton) { 
    
  • В теле действия получите текущий год, создайте дату соответствующей кнопки и проверьте, будет ли эта дата в будущем

        let now = Date()
        let calendar = Calendar.current
        let currentYear = calendar.component(.year, from: now)
        let türchenComponents = DateComponents(year: currentYear, month: 12, day: sender.tag)
        let türchenDay = calendar.date(from: türchenComponents)!
        if calendar.compare(türchenDay, to: now, toGranularity: .day) == .orderedDescending {
            // is in the future
            dailyContent.image = pictureTooEarly
        } else {
            // is today or past today
            dailyContent.image = picture1
        }
    }
    
...