לכאורה ניתן היה לחשוב כי xib (קרי: nib) זה משהו ששייך לעולם עתיק קדם הסטוריבורד
אולי גם נחלתם של טבלאות עתיקות או מתוחכמות.
אמת, בעבר השימוש העיקרי ב xib היה יצירת ממשק משתמש עבור UIViewController
וכיום (החל מ iOS 5) אנו משתמשים ב storyboard.
אבל עדיין שימוש ב xib יכול לפתור 2 אתגרים עיקריים.
הראשון, כפי שרזמתי לעיל, טבלאות, במידה ויש לכם יותר מטבלה אחת המשתמשת ב UITableViewCell מסוג מסויים.
יהיה יותר נוח במקרים מסויימים, ליצור קובץ xib אשר ממנו כל הטבלאות הרלוונטיות יטענו אותו.
מדובר בתהליך די פשוט ויש לכך דוגמאות רבות ברחבי הרשת.
המקרה השני, שעליו נדבר בפוסט זה, שימוש ב UI אשר נדרש במספר מסכים ושמימושו יכול להעיק על ה ViewController
וכמובן, לכתוב אותו כ reuse יהיה דבר טוב ושימושי.
ניתן דוגמא:
נניח במסך הרשמת משתמש, המשתמש נדרש להזין כתובת מייל, סיסמא, שם פרטי, שם אמצעי, שם משפחה, מספר טלפון
וגם תאריך לידה מקצוע ומגדר (מין), כאשר תאריך לידה יש לבחור מתוך UIDatePicker
ומקצוע ומגדר יש לבחור מתוך UIPickerView
על הפיקרים להתווסף רק בעת הזנה עם כפתור ״סיום״ וכפתור ״ביטול״
יש להחשיך את המסך
אפשר גם להוסיף כל מיני דברים כמו הופעה באנימציה ושאר ירקות.
המימוש לא קשה במיוחד, אבל מה שכן, זה הולך להעיק על ה ViewController מבחינת הוספת האובייקטים והסרתם
וכן שימוש חוזר בהם יהיה לא נעים במיוחד.
פה למשל, שימוש ב xib יהיה מתבקש.
נראה דוגמא למסך ההרשמה
קונספט:
תהיה מחלקת Controller שתקרא CutsomPickerController שתנהל את ה UI של הבחירה, אשר יטען מתוך קובץ xib, כך שבצורה נוחה יהיה אפשר להגדיר את ה UI.
המחלקה תאתחל את הממשק עם ארגומנט מסוג enum שיקרא CustomPickerControllerType שיקבע לה מה סוג ההצגה הנוכחי.
כמו כן יהיה פרוטוקול שיקרא CustomPickerControllerDelegate שיידע את המאזין (סביר להניח שיהיה זה ה ViewController) על אירועים שקרו כמו שינוי ערך, בחירה וביטול.
הViewController גם יחזיק את הקצאת הזיכרון של ה CustomPickerController.
נעבור למימוש:
צעד ראשון,ניצור את הפרוטוקול CustomPickerControllerDelegate
Objective C
Objective C
צעד שלישי, ניצור את המחלקה CustomPickerController עם מתודות חשובות הרלוונטיות לשינוי ערך, בחירה וביטול.
Objective C
Swift
צעד רביעי, בניית קובץ ה xib, חיבור קשרי ה IBAction וה IBOutlet
הקובץ מכיל 2 UIButton, וכן UIDatePicker ו UIPickerView, כאשר ה files owner הוא מהמחלקה CustomPickerController, והוא ה delegate וה data-source של ה UIPickerView
Objective C
Swift
צעד חמישי, סיום המימושים.
זהו מכאן והאלה הקוד הזה זמין לשימוש חוזר, ניתן גם לשנות אותו (עדיף על ידי ירושה) במידת הצורך.
להלן זמינים הפרוייקטים להורדה
נהנתם? ספרו לחבריכם! לא נהנתם? ספרו לי במייל אשלח לכם קופון למסאז׳ במחיר מלא.


















אין תגובות:
הוסף רשומת תגובה