123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- //
- // Extension.swift
- // Product Calculator
- //
- // Created by Suraj Kumar Mandal on 10/11/21.
- //
- import UIKit
- import Foundation
- extension UIView{
- func cardView() -> Void {
- self.layer.cornerRadius = 10
- self.layer.shadowColor = UIColor.gray.cgColor
- self.layer.shadowOffset = CGSize(width: 0.0, height: 0.0)
- self.layer.shadowRadius = 6.0
- self.layer.shadowOpacity = 0.5
- }
- }
- extension UITextField {
- func datePicker<T>(target: T,
- doneAction: Selector,
- cancelAction: Selector,
- datePickerMode: UIDatePicker.Mode = .date) {
- let screenWidth = UIScreen.main.bounds.width
-
- func buttonItem(withSystemItemStyle style: UIBarButtonItem.SystemItem) -> UIBarButtonItem {
- let buttonTarget = style == .flexibleSpace ? nil : target
- let action: Selector? = {
- switch style {
- case .cancel:
- return cancelAction
- case .done:
- return doneAction
- default:
- return nil
- }
- }()
-
- let barButtonItem = UIBarButtonItem(barButtonSystemItem: style,
- target: buttonTarget,
- action: action)
-
- return barButtonItem
- }
-
- let datePicker = UIDatePicker(frame: CGRect(x: 0,
- y: 0,
- width: screenWidth,
- height: 216))
- datePicker.datePickerMode = datePickerMode
- //datePicker.maximumDate = Date()
- // iOS 14 and above
- if #available(iOS 14, *) {
- datePicker.preferredDatePickerStyle = .wheels
- datePicker.sizeToFit()
- }
- self.inputView = datePicker
-
- let toolBar = UIToolbar(frame: CGRect(x: 0,
- y: 0,
- width: screenWidth,
- height: 44))
- toolBar.setItems([buttonItem(withSystemItemStyle: .cancel),
- buttonItem(withSystemItemStyle: .flexibleSpace),
- buttonItem(withSystemItemStyle: .done)],
- animated: true)
- self.inputAccessoryView = toolBar
- }
- }
- extension UIWindow {
- static var key: UIWindow? {
- if #available(iOS 13, *) {
- return UIApplication.shared.windows.first { $0.isKeyWindow }
- } else {
- return UIApplication.shared.keyWindow
- }
- }
- }
- extension UIViewController {
- func convertDateFormat(inputDate: String) -> String {
- let olDateFormatter = DateFormatter()
- olDateFormatter.dateFormat = "yyyy-MM-dd"
- let oldDate = olDateFormatter.date(from: inputDate)
- let convertDateFormatter = DateFormatter()
- convertDateFormatter.dateFormat = "dd/MM/yyyy"
- return convertDateFormatter.string(from: oldDate!)
- }
- }
- extension Date {
- init(dateString:String) {
- self = Date.iso8601Formatter.date(from: dateString)!
- }
- static let iso8601Formatter: ISO8601DateFormatter = {
- let formatter = ISO8601DateFormatter()
- formatter.formatOptions = [.withFullDate,
- .withTime,
- .withDashSeparatorInDate,
- .withColonSeparatorInTime]
- return formatter
- }()
- }
- extension String {
- func stringBefore(_ delimiter: Character) -> String {
- if let index = firstIndex(of: delimiter) {
- return String(prefix(upTo: index))
- } else {
- return ""
- }
- }
-
- func stringAfter(_ delimiter: Character) -> String {
- if let index = firstIndex(of: delimiter) {
- return String(suffix(from: index).dropFirst())
- } else {
- return ""
- }
- }
- }
|