zoukankan      html  css  js  c++  java
  • iOS 5 编程工具栏UIToolbar和日期选择器UIDatePicker的应用

    本文演示了工具栏UIToolbar和日期选择器UIDatePicker的应用,范例App运行界面如下所示:

    工具栏UIToolbar – 一般显示在底部,用于提供一组选项,让用户执行一些功能,而并非用于在完全不同的UI界面之间切换;在不同 UI 界面切换,是选项卡 Tab Bar负责的。

    日期选择器UIDatePicker - 一般将其Value Changed 事件连接到一个操作方法,读取其返回值,其返回一个NSDate 对象。可以在Attributes Inspector窗口对UIDatePicker进行定制:

    范例App的主要代码,如下所示:

    下面2个方法在UIDatePicker视图控制器中。

    - (IBAction)dismissDateChooser:(id)sender {
    [self dismissViewControllerAnimated:YES completion:nil];
    }

    上面这个方法负责关闭模态场景,也就是日期选择器窗口。

    - (IBAction)setDateTime:(id)sender {
    [(MainViewController *)self.mainViewController calculateDateDifference:((UIDatePicker *)sender).date];
    }

    setDateTime 方法则是和UIDatePicker对象的value changed 事件关联,在用户选择日期时,调用calcuateDateDifference: 方法,计算2个时间之间的差异(单位:秒)。

    下面的这2个方法,在MainViewController 视图控制器实现文件中。

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    ((DateChooserViewController *)segue.destinationViewController).mainViewController = self;
    }

    方法prepareForSegue:sender 负责在视图切换时,设置destinationViewController的mainViewController 属性为self,随后在destinationViewController实例中会访问该属性。

    - (void) calculateDateDifference:(NSDate *)chosenDate
    {
    NSDate *todayDate;
    NSString *differenceOutput;
    NSString *todayDateString;
    NSString *chosenDateString;
    NSDateFormatter  *dateFormat;
    NSTimeInterval difference;

    todayDate = [NSDate date];
    difference = [todayDate timeIntervalSinceDate:chosenDate];

    dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
    todayDateString = [dateFormat stringFromDate:todayDate];
    chosenDateString = [dateFormat stringFromDate:chosenDate];

    differenceOutput = [[NSString alloc] initWithFormat:
    @”当前时间:%@ \n约会时间:%@\n还需等待:%1.2f 小时”,
    todayDateString, chosenDateString, fabs(difference)/3600];

    self.outputLabel.text = differenceOutput;
    }

    自定义的calculateDateDifference方法,负责实现日期计算逻辑和显示。其中使用到了NSDate 对象的timeIntervalSinceDate方法,计算2个NSDate对象之间相差多少秒;另外,创建了一个NSDateFormatter 日期格式化对象,可以调用stringFromDate方法,将NSDate对象转换为指定格式的NSString 对象。

    最后,将结果按照指定的格式输出,%@和%1.2f — 分别表示字符串和一个带前导零和2位小数的浮点数。

  • 相关阅读:
    设计模式3.1 Abstract Factory(抽象工厂)对象创建型模式
    设计模式文本编辑器
    Jquery调用webService远程访问出错的解决方法
    重构列表
    设计模式3.创建型模式
    设计模式 3.2 Builder(生成器)对象创建型模式
    设计模式 3.4 Prototype(原型)对象创建模式
    设计模式3.3 Factory Method(工厂方法) 对象创建型模式
    C# Word.Office操作总结
    设计模式 3.5 Singleton(单件)对象创建型模式
  • 原文地址:https://www.cnblogs.com/tuncaysanli/p/2727824.html
Copyright © 2011-2022 走看看