Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

          Here is a great way to ask your users to input dates on your iPhone app.

          When you use UIDatePicker in your app you will a tumbler that lets users select a date that you may use in other parts of your app.

          In order to use UIDatePicker you will need to implement the UIPickerViewDelegate delegate and then add a UIPicker to your subview. To retrieve the date that the user inputs you can use the target-action pattern to assign a method to execute once the user has picked a date. See the video below:

          Here is the code from the example:

          Implement the UIDatePickerView Delegate

          The first thing we needed to do was indicate that our view controller would be acting as a delegate for the UITextField. To do this you simply need to declare it in the interface file:

          #import <UIKit/UIKit.h>
          //UIPicker requires an object that adopts the UIPickerViewDelegate protocol
          @interface DatePicker : UIViewController<UIPickerViewDelegate> {
          }
          @end

          Add the UILabel and UIDatePicker Objects

          This part is straightforward enough: you essentially create a label and a date picker and add them both to the view controller’s subview collection. This is the typical pattern used to build up a view in code.

          #import "DatePicker.h"
          @implementation DatePicker
          UILabel *label;
          UIDatePicker *datePicker;
          - (void)viewDidLoad {
          [super viewDidLoad];
          //Create label
          label = [[UILabel alloc] init];
          label.frame = CGRectMake(10, 10, 300, 40);
          label.textAlignment = UITextAlignmentCenter;
          //Use NSDateFormatter to write out the date in a friendly format
          NSDateFormatter *df = [[NSDateFormatter alloc] init];
          df.dateStyle = NSDateFormatterMediumStyle;
          label.text = [NSString stringWithFormat:@"%@",
          [df stringFromDate:[NSDate date]]];
          [df release];
          [self.view addSubview:label];
          [label release];
          // Initialization code
          datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 250, 325, 250)];
          datePicker.datePickerMode = UIDatePickerModeDate;
          datePicker.hidden = NO;
          datePicker.date = [NSDate date];
          [datePicker addTarget:self
          action:@selector(changeDateInLabel:)
          forControlEvents:UIControlEventValueChanged];
          [self.view addSubview:datePicker];
          [datePicker release];
          }
          - (void)dealloc {
          [datePicker release];
          [label release];
          [super dealloc];
          }
          @end

          Implement Your Action Method

          This is the method that you assigned to the UIControlEventValueChanged event above using the target-action pattern.

          - (void)changeDateInLabel:(id)sender{
          //Use NSDateFormatter to write out the date in a friendly format
          NSDateFormatter *df = [[NSDateFormatter alloc] init];
          df.dateStyle = NSDateFormatterMediumStyle;
          label.text = [NSString stringWithFormat:@"%@",
          [df stringFromDate:datePicker.date]];
          [df release];
          }
          

          How this works is that when the user stops manipulating the tumbler an event called UIControlEventValueChanged occurs. Since we assigned the changeDateInLabel method as an action for this event the code in that method will execute updating the date in the label.

          Time To Take Action!

          Learning how to program is 5% reading and 95% action so the best way to learn is to do it yourself. Create a simple iPhone app that uses the date picker code.

          Let us know how it goes in the comments below!

          posted on 2010-10-04 22:26 seal 閱讀(505) 評論(0)  編輯  收藏 所屬分類: iPhone
          主站蜘蛛池模板: 襄城县| 昔阳县| 绿春县| 株洲县| 海丰县| 遂川县| 平江县| 南昌县| 昂仁县| 温泉县| 常熟市| 潍坊市| 榆林市| 安平县| 甘南县| 梨树县| 柳林县| 突泉县| 香河县| 岳普湖县| 德惠市| 喀喇沁旗| 随州市| 公主岭市| 万全县| 伊川县| 时尚| 凤庆县| 宜兴市| 疏附县| 定结县| 满城县| 安宁市| 上虞市| 兴文县| 大丰市| 新乡市| 来凤县| 聂荣县| 怀安县| 乌拉特前旗|