2014-10-01 1 views
3

извините за мой английский и вопрос!Конфигурация датыPicker swift

I'm с помощью Xcode 6 с быстрым

я пытаюсь разработать свое собственное приложение, и я не знаю, как спросить у пользователя, чтобы установить дату, так что я могу использовать это значение на других side: S я не забочусь, если он использует DatePicker со свитком или другим способом, просто нужно, чтобы пользователь мог установить любую дату. Я не могу догадаться, как работает datePicker: S

Я нашел этот код внутри курса, который разрабатывает «Tinder», когда он запрашивает дату вашего рождения в логине, я адаптирую его для своего приложения, но он не делает работа, и я не знаю почему: S

import UIKit 

class SignUpController: UIViewController, UITextFieldDelegate { 

var pickerContainer = UIView() 
var picker = UIDatePicker() 

@IBOutlet weak var selectedDate: UIButton! 


override func viewDidLoad() { 
    super.viewDidLoad() 


    self.selectedDate.setTitle("", forState: UIControlState.Normal) 

    configurePicker() 
} 

func configurePicker() 
{ 
    pickerContainer.frame = CGRectMake(0.0, 600.0, 320.0, 300.0) 
    pickerContainer.backgroundColor = UIColor.whiteColor() 

    picker.frame = CGRectMake(0.0, 20.0, 320.0, 300.0) 
    picker.setDate(NSDate(), animated: true) 
    picker.maximumDate = NSDate() 
    picker.datePickerMode = UIDatePickerMode.Date 
    pickerContainer.addSubview(picker) 

    var doneButton = UIButton() 
    doneButton.setTitle("Done", forState: UIControlState.Normal) 
    doneButton.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal) 
    doneButton.addTarget(self, action: Selector("dismissPicker"), forControlEvents: UIControlEvents.TouchUpInside) 
    doneButton.frame = CGRectMake(250.0, 5.0, 70.0, 37.0) 

    pickerContainer.addSubview(doneButton) 

    self.view.addSubview(pickerContainer) 
} 

@IBAction func selectDate(sender: AnyObject) 
{ 



    UIView.animateWithDuration(0.4, animations: { 

     var frame:CGRect = self.pickerContainer.frame 
     frame.origin.y = self.view.frame.size.height - 300.0 + 84 
     self.pickerContainer.frame = frame 

    }) 
} 

func dismissPicker() 
{ 
    UIView.animateWithDuration(0.4, animations: { 

     self.pickerContainer.frame = CGRectMake(0.0, 600.0, 320.0, 300.0) 

     let dateFormatter = NSDateFormatter() 

     dateFormatter.dateFormat = "dd/MM/yyyy" 

     self.selectedDate.setTitle(dateFormatter.stringFromDate(self.picker.date), forState: UIControlState.Normal) 
    }) 
} 

ответ

5

Я внесла некоторые изменения для вас. В дополнение к добавлению одной правой скобки в конце кода, я изменил координаты CGRectMake в двух местах. Все было на экране. Когда я реализовал код, я добавил кнопку для отображения даты в верхнем левом углу представления и связал ее с IBOutlet. Это должно дать вам хорошее начало.

import UIKit 

class SignUpController: UIViewController, UITextFieldDelegate { 

    var pickerContainer = UIView() 
    var picker = UIDatePicker() 

    @IBOutlet weak var selectedDate: UIButton! 


    override func viewDidLoad() { 
     super.viewDidLoad() 


     self.selectedDate.setTitle("", forState: UIControlState.Normal) 

     configurePicker() 
    } 

    func configurePicker() 
    { 
     pickerContainer.frame = CGRectMake(0.0, 50, 320.0, 300.0) 
     pickerContainer.backgroundColor = UIColor.whiteColor() 

     picker.frame = CGRectMake(0.0, 20.0, 320.0, 300.0) 
     picker.setDate(NSDate(), animated: true) 
     picker.maximumDate = NSDate() 
     picker.datePickerMode = UIDatePickerMode.Date 
     pickerContainer.addSubview(picker) 

     var doneButton = UIButton() 
     doneButton.setTitle("Done", forState: UIControlState.Normal) 
     doneButton.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal) 
     doneButton.addTarget(self, action: Selector("dismissPicker"), forControlEvents: UIControlEvents.TouchUpInside) 
     doneButton.frame = CGRectMake(250.0, 5.0, 70.0, 37.0) 

     pickerContainer.addSubview(doneButton) 

     self.view.addSubview(pickerContainer) 
    } 

    @IBAction func selectDate(sender: AnyObject) 
    { 



     UIView.animateWithDuration(0.4, animations: { 

      var frame:CGRect = self.pickerContainer.frame 
      frame.origin.y = self.view.frame.size.height - 300.0 + 84 
      self.pickerContainer.frame = frame 

     }) 
    } 

    func dismissPicker() 
    { 
     UIView.animateWithDuration(0.4, animations: { 

      self.pickerContainer.frame = CGRectMake(0.0, 50, 320.0, 300.0) 

      let dateFormatter = NSDateFormatter() 

      dateFormatter.dateFormat = "dd/MM/yyyy" 

      self.selectedDate.setTitle(dateFormatter.stringFromDate(self.picker.date), forState: UIControlState.Normal) 
     }) 
    } 
} 
+1

спасибо !! Вы сохраняете мой проект! –

Смежные вопросы