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位小数的浮点数。

  • 相关阅读:
    第二周学习总结
    调查问卷
    第五周学习总结
    基于DevExpress的项目窗体统一换肤
    一个Linq to Sql 的关联小问题,搞死人
    VC中类型转换(转载)
    保证一个程序只运行一次
    给所有的Control添加发送键盘事件Tab事件,实现回车键自动跳转到下一个控件[基于Shark Xu]
    遍历进程
    CSS Friendly ASP.NET 2.0 Control Adapters (Beta 2.0)在处理URL时的一个Bug
  • 原文地址:https://www.cnblogs.com/tuncaysanli/p/2727824.html
Copyright © 2011-2022 走看看