Latest 1.0.1
Homepage https://github.com/omidgolparvar/IDPersianDatePicker
License MIT
Platforms ios 10.0, requires ARC
Authors

سلام دوستان! 🤓

🗓 🇮🇷 انتخاب‌گر تاریخ پارسی

خود آی‌او‌اس یه DatePicker داره که میشه Locale و Calendar رو براش به بطوری تنظیم کرد تا باهاش بتونیم یه تاریخ پارسی انتخاب کنیم. اما شخصا بنظرم زیاد جالب نبود؛ چون با استفاده از اون:

  • هربار فقط میشه یک تاریخ رو انتخاب کرد.
  • از فونت پیشفرض خود سیستم عامل استفاده می‌کنه.
  • خوشگل نیست.

برای همین تصمیم گرفتم یه چیزی پیاده‌سازی کنم تا این ویژگی‌ها/ایرادات رو نداشته باشه. چندتا عکس هم ازش قرار دادم، تا بتونین یه نگاهی (قبل از استفاده) بهش بندازین.

IDPersianDatePicker IDPersianDatePicker IDPersianDatePicker

نصب

برای نصب می‌تونین از Cocoapod استفاده کنین. عبارت مورد استفاده برای نصب هم اینه:

pod 'IDPersianDatePicker'

👈 توجه داشته باشین که زبان مورد استفاده توی این پروژه سوییفت نسخه ۴.۲ بوده.

استفاده

قدم اول

اولین قدم اینه که ایمپورتش کنین:

“`swift
import IDPersianDatePicker
“`

قدم دوم

مرحله بعد اینه که ویوکنترلر شما یه پروتکل رو پیاده‌سازی کنه. پروتکلی که باید پیاده‌سازی کنه PersianDatePickerDelegate هست. وظیفه این پروتکل آماده کردن داده‌ها و مشخصه‌های مورد استفاده در انتخاب‌گر هست.
متدها و مشخصه‌هایی که داره بصورت زیر هست:

  • مشخصه persianDatePicker_BaseFont از نوع UIFont

    این مشخصه فونت مورد استفاده توی انتخاب‌گر رو مشخص می‌کنه.

  • مشخصه persianDatePicker_Title از نوع String

    این مشخصه عنوان مورد نظر برای انتخاب‌گر رو مشخص می‌کنه.

  • مشخصه persianDatePicker_Message از نوع String?

    این مشخصه پیام دلخواه شما (که زیر عنوان قرار می‌گیره) رو مشخص می‌کنه؛ و البته اجباری نیست.

  • مشخصه persianDatePicker_SelectedDateColors از نوع (text: UIColor, background: UIColor)

    این مشخصه رنگ مورد نظر شما برای روزهای انتخاب‌شده رو مشخص می‌کنه. در واقع اولی رنگ متن و دومی رنگ پس‌زمینه رو مشخص می‌کنه.

  • مشخصه persianDatePicker_CanSelectMultipleDates از نوع Bool

    با استفاده از این مشخصه می‌تونین فعال‌بودن قابلیت انتخاب چندین روز رو مشخص کنین.

  • مشخصه persianDatePicker_MinimumDate از نوع Date

    این مشخصه حداقل روز قابل انتخاب رو مشخص می‌کنه.

  • مشخصه persianDatePicker_MaximumDate از نوع Date

    این مشخصه حداکثر روز قابل انتخاب رو مشخص می‌کنه.

  • متد persianDatePicker_CanSelectDate(_ date: Date) و خروجی از نوع Bool

    با استفاده از این متد می‌تونین از انتخاب یه سری روزها جلوگیری کنین.

  • متد persianDatePicker_DidSelectDates(_ dates: [Date])

    زمانیکه که کاربر روی دکمه انتخاب بزنه، روزهایی که انتخاب شده، با استفاده از این متد در دسترس خواهند بود.

👈 اینو در نظر داشته باشین که همه این مشخصه‌ها و متدها اجباری نیستن؛ بعضیاشون دارای بنده پیشفرض هستن که می‌تونین خودتون بررسی‌شون کنین.

قدم سوم

برای فراخوانی و نمایش انتخاب‌گر هم بصورت زیر عمل می‌کنیم:

“`swift
PersianDatePickerController.Present(
from : UIViewController,
delegate : PersianDatePickerDelegate,
completion : (() -> Void)?
)
“`

توی این متد، پارامتر from مشخص‌کننده ویوکنترلر فعلی هست، پارامتر delegate برابر اون آبجکتی هست که پروتکل مورد نیاز رو پیاده‌سازی کرده، و اون پارامتر completion هم که بعد از نمایش انتخاب‌گر فراخوانی میشه.

سخن آخر

  • 👀
    اگه ایرادی توی روند پیاده‌سازی یا استفاده مشاهده کردین، حتما بگین تا رفعش کنیم.
  • 🤝
    اگه قابلیت خاصی به ذهن‌تون رسید که می‌تونست به بهتر شدن این پروژه کمک کنه، حتمن بگین؛ شاید با کمک هدیگه پیاده‌سازی‌اش کردیم.
  • 😋
    تنکیوووووو.

Latest podspec

{
    "name": "IDPersianDatePicker",
    "version": "1.0.1",
    "summary": "Framework for selecting date in Persian Calendar written Swift.",
    "description": "Framework for selecting date in Persian Calendar.n                     Written in Swift.",
    "homepage": "https://github.com/omidgolparvar/IDPersianDatePicker",
    "license": {
        "type": "MIT",
        "file": "LICENSE.md"
    },
    "authors": {
        "Omid Golparvar": "[email protected]"
    },
    "source": {
        "git": "https://github.com/omidgolparvar/IDPersianDatePicker.git",
        "tag": "1.0.1"
    },
    "swift_version": "4.2",
    "platforms": {
        "ios": "10.0"
    },
    "requires_arc": true,
    "pod_target_xcconfig": {
        "SWIFT_VERSION": "4.2"
    },
    "source_files": [
        "PersianDatePicker/*.{h,swift}",
        "PersianDatePicker/Source/**/*.{h,swift}",
        "PersianDatePicker/Source/**/*.xib"
    ],
    "resources": [
        "PersianDatePicker/Source/Assets.xcassets"
    ],
    "public_header_files": "PersianDatePicker/*.h",
    "libraries": "z"
}

Pin It on Pinterest

Share This