当我尝试在日期选择器中调用图像时,为什么要排除"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")
}
答案 0 :(得分:0)
在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")
}
}
其中dateA
和dateB
是显示兔子图像的日期(NSDate
形式)。
答案 1 :(得分:0)
日期选择器不会与图像视图对话。日期选择器是UIControl。
执行所需操作的逻辑属于视图控制器。
您可以为日期选择器设置IBOutlet。 您可以在IB中的视图控制器中添加一个OK按钮,该按钮链接到IBAction方法。
在那个IBAction方法中,你会看到选择器的日期属性(使用选择器的出口。)如果日期与你的一个魔术日期匹配,你将拥有将你的一个图像加载到图像视图中的代码已链接到视图控制器中的另一个IBOutlet。
将其分解为婴儿步骤。连接出口和行动。首先,只需在您的IBAction方法中添加println("In button action")
。接下来,从选择器中获取日期并将其记录在IBAction中。
接下来,弄清楚如何编写与您的不同日期匹配的switch语句,并在匹配不同日期时打印语句。这将需要绕过文档阅读有关Swift非常强大的switch语句。
接下来,了解如何从名称数组中加载不同的图像,并在单击按钮时将其安装到视图控制器的图像视图中。 (首先设置一个从0开始的Int实例变量imageIndex
,然后按下按钮从图像名称数组中加载图像名称,下次递增索引,然后将加载的图像安装到图像中图。
最后,调整你的开关语句,以便各种魔术日期将所需的图像加载到图像视图中。