Snippets Collections
    let datePicker =  UIDatePicker()
    let toolBar = UIToolbar()
    
    var pickedDate = ""
    var dobTimeStamp = ""
    
    override func viewDidLoad() {
        super.viewDidLoad()
      
        createDatePicker()
    }


// MARK: - Date Picker

extension SignUpViewController {
    
    func createDatePicker() {
        toolBar.sizeToFit()
     //   toolBar.layer.frame.size = CGSize(width: 414, height: 500)
        
        let doneBtn = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(donePressed))
        toolBar.setItems([doneBtn], animated: true)
        datePicker.preferredDatePickerStyle = .wheels
        datePicker.datePickerMode = .date
    }
    
    @objc func donePressed() {
        let dateFormatter: DateFormatter = DateFormatter()
        dateFormatter.dateFormat = "dd MMM,yyyy"
        pickedDate = dateFormatter.string(from: datePicker.date)
        print("picked Date : ", pickedDate)
        let myTimeStamp = Int(self.datePicker.date.timeIntervalSince1970)
        dobTimeStamp = String(myTimeStamp * 1000)
        self.view.endEditing(true)
    }
}

// MARK: Text Field

extension SignUpViewController: UITextFieldDelegate {
    
    func textFieldDidBeginEditing(_ textField: UITextField) {
        
        if textField.tag == 4 {
            textField.inputAccessoryView = toolBar
            textField.inputView = datePicker
            datePicker.maximumDate = Date()
        }
    }
}
//MARK: - Document Picker

// From your project's capabilities, enable both the iCloud and the Key-Sharing.

@IBAction func pickDocumentPressed(_ sender: Any) {
       presentDocumentPicker()
    }

extension OffersReceivedViewController : UIDocumentPickerDelegate,UINavigationControllerDelegate {
    
    func presentDocumentPicker() {
        let sTypes = getSupportedTypes()
        let documentPickerController = UIDocumentPickerViewController(
            forOpeningContentTypes: sTypes)
        
        documentPickerController.delegate = self
        documentPickerController.allowsMultipleSelection = false
        SVProgressHUD.show()
        self.present(documentPickerController, animated: true) {
            SVProgressHUD.dismiss()
        }
    }
    
    public func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
        guard let myURL = urls.first else {
            return
        }
        print("import result : \(myURL)")
        print("get Image Url")
        fileUrl = myURL
    }
    
    func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
        print("view was cancelled")
        dismiss(animated: true, completion: nil)
    }
    
    func getSupportedTypes() -> [UTType] {
        let supportedTypes : [UTType] = [UTType.utf8TabSeparatedText, UTType.rtf,    UTType.pdf, UTType.webArchive, UTType.image, UTType.jpeg,    UTType.tiff, UTType.gif, UTType.png, UTType.bmp, UTType.ico,    UTType.rawImage, UTType.svg, UTType.livePhoto, UTType.movie,    UTType.video, UTType.audio, UTType.quickTimeMovie, UTType.mpeg,    UTType.mpeg2Video, UTType.mpeg2TransportStream, UTType.mp3,    UTType.mpeg4Movie, UTType.mpeg4Audio, UTType.avi, UTType.aiff,    UTType.wav, UTType.midi, UTType.archive, UTType.gzip, UTType.bz2,    UTType.zip, UTType.appleArchive, UTType.spreadsheet, UTType.epub]
        return supportedTypes
    }
}
@IBOutlet weak var dayPicker: UIPickerView!
     
var pickerData: [Int]!

  viewDidLoad(){
  setDayPicker()
  dayPicker.delegate = self
  dayPicker.dataSource = self
}
  
//MARK: - Day Picker

extension PostRequestViewController : UIPickerViewDelegate, UIPickerViewDataSource {
    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }
    
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return pickerData.count
    }
    
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        print("\(pickerData[row])")
            return "\(pickerData[row])"
        }
    
    func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
        let attributedString = NSAttributedString(string: String(pickerData[row]), attributes: [NSAttributedString.Key.foregroundColor : pickerView.hexStringToUIColor(hex: "FEDA22")])
        return attributedString
    }
    
    func setDayPicker () {
        let minDay = 1
              let maxDay = 90
              pickerData = Array(stride(from: minDay, to: maxDay + 1, by: 1))
    }
}
var imagePicker = UIImagePickerController()
var imagePicked = false


    @IBAction func updateProfilePressed(_ sender: Any) {
        let email = emailTextField.text ?? ""
        let phone = phoneNumberTextField.text ?? ""
        
        if nameTextField.text == "" {
            self.showToast(message: "Please enter name")
            return
        } else if !isValidPhone(phone) {
            self.showToast(message: "Please enter a valid phone number")
            return
        }
        
        if imagePicked {
            DB.getImageUrl(profileImageView) { imageUrl in
               let data = [
                    "profileUrl" : imageUrl,
                    "name" : self.nameTextField.text ?? "",
                    "phoneNumber": self.phoneNumberTextField.text ?? "",
                ]
                self.saveData(data)
            }
        } else {
           let data = [
                "name" : self.nameTextField.text ?? "",
                "phoneNumber": self.phoneNumberTextField.text ?? "",
            ]
            self.saveData(data)
        }
    }
    
    func saveData(_ data : [String:Any]) {
        
        let userId = Auth.auth().currentUser?.uid ?? ""
        
        DB.updateDocument("ServiceProviders", userId, data, merge: true) { success in
            if success {
                self.showToast(message: "Profile Updated!")
            }
        }
    }


// MARK: - Image Picker

extension ProfileViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    
    func enableImageViewTapGesture()
        {
            let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(profileImageTapped(tapGesturerecognizer:)))
            profileImageView.isUserInteractionEnabled = true
            profileImageView.addGestureRecognizer(tapGestureRecognizer)
        }
    
    @objc func profileImageTapped(tapGesturerecognizer: UITapGestureRecognizer){
        
        if UIImagePickerController.isSourceTypeAvailable(.savedPhotosAlbum){
            print("Button capture")
            imagePicker.delegate = self
            imagePicker.sourceType = .savedPhotosAlbum
            imagePicker.allowsEditing = true
            
            SVProgressHUD.show()
            present(imagePicker, animated: true) {
                SVProgressHUD.dismiss()
            }
        }
        else {
            print("No")
        }
    }
    
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        
        if let pickedImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
            imagePicked = true
            profileImageView.layer.cornerRadius = profileImageView.bounds.width/2
            profileImageView.image = pickedImage
        }
        self.dismiss(animated: true, completion: nil)
    }
    
    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        
        dismiss(animated: true, completion:nil)
    }
}
star

Sat Dec 31 2022 04:27:45 GMT+0000 (Coordinated Universal Time)

#ios #swift #date #picker
star

Mon Jun 27 2022 10:53:43 GMT+0000 (Coordinated Universal Time) https://stackoverflow.com/questions/37296929/implement-document-picker-in-swift-ios

#ios #swift #file #pdf #doc #document #picker #mp3 #mp4 #video #audio
star

Mon Jun 13 2022 06:32:37 GMT+0000 (Coordinated Universal Time)

#ios #swift #day #daypicker #picker

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension