יום שלישי, 21 באוקטובר 2014

לייבל שאינו מלבני, בצורה גנרית ויפה

האובייקט UILabel הוא מלבני בהגדרתו.

לעיתים עולה הצורך בצורה שאינה מלבנית במיוחד כאשר משתמשים ברקע לא שקוף

ישנו פתרון לשים תמונת רקע, אני אישית נרתע מהפתרון הזה מ2 סיבות עיקריות

1. תמונה צורכת לא מעט זיכרון ומוסיפה משקל לאפליקציה.
2. זה לא פתרון גנרי הניתן לשימוש חוזר.

אשר על כן, אני מעדיף פתרון באמצעות ציור.

לשם הפשטות, נגדיר שהצורה המבוקשת היא אליפסה (עיגול הוא מקרה פרטי של אליפסה למקרה הצורך).

הפתרון יהיה באמצעות שימוש ב drawRect.
שימו לב, שהקריאה ל super תעשה בסוף קוד הציור על מנת שציור הטקסט יבוא מעל ציור הרקע.

וניגש למימושים.


Objective C


Swift



ולתוצאה הסופית




זה כמובן הפתרון המינימאלי

ניתן להוסיף תכונות שיקבעו את צבע הרקע של הצורה האליפסית, את צבע המסגרת, את עובי המסגרת
ובהצבתם לקרוא ל setNeedsDisplay על מנת שהאובייקט יצוייר מחדש.

ניתן לחשוב אולי לצייר את האליפסה על 95% מהשטוח על מנת לשמור על קצוות יפים, ועוד...

וכמובן כדאי ליישר את הטקסט לאמצע.


את התוצאה הסופית עם התכונות המוזכרות לעיל, תוכלו לראות בקישורים הבאים



להתראות במדריך הבא!

אין תגובות:

הוסף רשומת תגובה