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

  • 相关阅读:
    校验身份证号、邮箱、手机号
    星级评分插件
    JS 实现轮播图
    js 禁止网页后退
    删除Redis缓存
    分析器错误,未能加载类型
    Vue 禁止按钮重复提交
    Vue 页面加载前显示{{代码}}的原因及解决办法 PC端
    设计模式之策略模式
    数据库索引知识到MySQL InnoDB
  • 原文地址:https://www.cnblogs.com/tuncaysanli/p/2727824.html
Copyright © 2020-2023  润新知