UIDatePicker 调用 UIImageView 中的特定图片

UIDatePicker to call specific image in UIImageView

为什么当我尝试在日期选择器中调用带有它们的图像时,"1925-1-23""1924-2-5" 被排除在外?我能够成功调用上述两个日期之间的每个日期的图像。为什么日期 "1925-1-23""1924-2-5" 是唯一不调用图像的日期。

   import UIKit

   public func ==(lhs: NSDate, rhs: NSDate) -> Bool {
return lhs === rhs || lhs.compare(rhs) == .OrderedAscending
}

public func <(lhs: NSDate, rhs: NSDate) -> Bool {
return lhs.compare(rhs) == .OrderedDescending
}

extension NSDate: Comparable { }



class ViewController: UIViewController {


@IBOutlet weak var displayAnimal: UIImageView!

@IBOutlet weak var dateWheel: UIDatePicker!

@IBAction func goButton(sender: UIDatePicker)

    {

        let dateStringFormatter = NSDateFormatter()
        dateStringFormatter.dateFormat = "yyyy-MM-dd"
        dateStringFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")        

   {

    let dateStringFormatter = NSDateFormatter()
    dateStringFormatter.dateFormat = "yyyy-MM-dd"
    dateStringFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")

    let rabbit1A = dateStringFormatter.dateFromString("1924-2-5")
    let rabbit2A = dateStringFormatter.dateFromString("1925-1-23")

    if(dateWheel.date.compare(rabbit1A!) == NSComparisonResult.OrderedDescending && 
 dateWheel.date.compare(rabbit2A!) == NSComparisonResult.OrderedAscending)
    {
    // set the image of UIImageView
    displayAnimal.image = UIImage(named: "rabbit")
    }

在你的IBOutlet中:

@IBAction func selectDateButton(sender : UIDatePicker) {
  // set the date criteria here
  if(sender.date.compare(dateA) == NSComparisonResult.OrderedAscending && sender.date.compare(dateB) == NSComparisonResult.OrderedDescending) {
     // set the image of UIImageView
     displayAnimal.image = UIImage(named: "rabbit")
  }
}

其中dateAdateB是符合显示兔子图片条件的日期(格式为NSDate)。

日期选择器不会与图像视图对话。日期选择器是一个 UIControl。

做你想做的事情的逻辑属于你的视图控制器。

您可以为日期选择器设置一个 IBOutlet。 您将在 IB 中向链接到 IBAction 方法的视图控制器添加一个确定按钮。

在该 IBAction 方法中,您将查看选择器的日期 属性(使用选择器的出口。)如果该日期与您的魔法日期之一相匹配,您将拥有加载其中之一的代码您的图像转换为链接到视图控制器中另一个 IBOutlet 的图像视图。

将其分解为几个小步骤。连接出口和行动。首先只需在您的 IBAction 方法中放入一个 println("In button action") 。接下来,从选择器中获取日期并将其记录在您的 IBAction 中。

接下来,弄清楚如何编写匹配不同日期的 switch 语句,并在匹配不同日期时打印语句。这将需要绕道阅读文档以了解 Swift 非常强大的 switch 语句。

接下来弄清楚如何从名称数组中加载不同的图像,并在单击按钮时将它们安装到视图控制器的图像视图中。 (首先设置一个从 0 开始的 Int 实例变量 imageIndex,然后按下按钮从图像名称数组中加载图像名称,为下一次递增索引,然后将加载的图像安装到图像中查看。

最后,调整您的 switch 语句,以便您的各种神奇日期将所需图像加载到图像视图中。