
הטקסט המלא של הדקות הראשונות בהרצאה «עבודה עם UIAlertController הצגת alert ב-Xcode - חלק 3» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אהלן חברים שמח שהצטרפתם אנחנו רוצים לשדרג קצת את הפרויקט הזה כלומר אנחנו רוצים להוסיף כמו שאמרתי בשיעור הקודם קצת שיפורים לטקסט פילדים שלנו אנחנו יכולים להוסיף אייקון בצד ימין הייתי רוצה לומר משהו כמו טקסט פילד נקודה אייקון בצד ימין שווה לערך ואפשר לעשות את זה כמו שאתם רואים כאן אז מה שאנחנו רואים
זה שיש פה תכונה שנקראת right view והright view זה איזה פקד אני רוצה להציג בצד ימין האמת היא שאנחנו נרצה להציג פה image view אז בואו נגדיר ui-image-view שווה ui-image-view חדש ואנחנו נרצה להתחיל אותו אולי עם image אז יש פה image כדי שנוכל להציג תמונה
בואו ניקח תמונה לפרויקט נוסיף אותה פה לassets אוקיי? כלומר בוא נמצא תמונה נגיד בתוכנה הזאת שהראינו בשיעורים הקודמים באיקון סייט נחפש פה e-mail ונגרור את זה פנימה עכשיו בשביל הקיצור אני רוצה לתת את הקרדיט ל-IconSate, אבל בשביל הקיצור אני אקרא לתמונה הזאת E-Mail,
כך יהיה לנו יותר נוח. שיניתי שם פשוט את השם, ואז בתמונה שלנו אנחנו רוצים לקחת UI-Image-Named, נכון?
וב-Name קראנו לה E-Mail, אז נוח לי יותר להקליד את זה כך. יפה. אז הוספנו פה אימג' ווי לתמונה, בואו נראה אם זה לטקסט פילד, בואו נראה איך זה נראה, אם בכלל.
האמת היא שאם אני אריץ את זה כרגע זה לא ייראה, אתם מוזמנים לבדוק כדי שיראו את הטקסט פילד אז אנחנו רוצים להגדיר עוד תכונה אחת שמתייחסת ל-right view ונקראת right view mode וכאן אנחנו רוצים לדעת האם להציג את זה תמיד האם להציג את זה רק בעריכה בסדר או רק שלא בעריכה והאמת היא שאנחנו רוצים כל הזמן להציג את זה עבור הטקסט פילד
שלנו אז עכשיו אני יכול להריץ ולבדוק איך זה נראה ובוא נבדוק איך זה נראה ביחד בוא נראה אנחנו מריצים או נחמד אבל אופסי קטן זה קצת גדול מדי.
בכוונה הראתי לכם את זה כי אנחנו רוצים להבין את הסיבה לדברים שאנחנו עושים. אז הקוד הבא הולך בדיוק לסדר את העניין הזה. כאן יש לנו את ה-right view, ואנחנו רוצים לקבוע על ה-right view קצת תכונות.
למשל, email.textfield.rightview עכשיו כבר יש שם view ואנחנו יודעים את זה, אז אפשר ככה להמשיך לעבוד. עליו אנחנו רוצים לקבוע בעצם את הגודל, והגודל נקבע על ידי הגודל של המסגרת של הפקד.
CG Rect זה מרובה, ל-Rect למרובה יש סייז, ועל הסייז אנחנו רוצים לקבוע איזשהו גודל, את הסייז הזה אנחנו רוצים לקבוע.
מבחינת רוחב אנחנו צריכים לבחור פה איזשהו מספר, משהו כמו 40. המספר הזה הרבה פעמים זה בערך הגבולות של המספר, בואו נראה, אבל הוא הרבה פעמים שרירותי.
אבל בואו נסתכל שנייה איך זה נראה אנחנו רואים שזה נראה נחמד הגובה של הטקסט של האימג' הוא קצת גדול ממה שצריך נכון אנחנו רוצים שהוא יהיה בדיוק בגובה של הטקסט פה עכשיו מאיפה אנחנו יודעים מה הגובה של הטקסט זה מתחיל להיות קצת מסורבל ומה שאנחנו יכולים לעשות זה לקחת את הגודל של הטקסט איך נמצא עכשיו את הגובה של הטקסט how to find a strings
עכשיו זה לא בדיוק סטרינג זה בעצם תלוי בפונט נכון תלוי בגובה של הפונט למעשה וזה המזל שלנו שאיוס כל כך נעימה וכל כך נחמדה יש לנו ממש תכונה כזאת אז בוא נראה איך עושים את זה אנחנו פשוט נרצה לקחת מהטקסט פילד את הפונט אוקיי
וממנו אנחנו נרצה לקחת את הליין הייט קול אם לא אז שיביא לנו את ה-40 אוקיי כלומר אם אין פונט ואני מבטיח לכם שיש פונט אבל בכל אופן אנחנו אוהבים ללכת על הצד הבטוח ושהקוד הזה תמיד יעבוד מתחת למים. בואו נראה.
בואו נסתכל עכשיו לגבי העניין הזה עם הליין הייט. מדהים. אז זה בדיוק בגובה של הטקסט וזה נראה נחמד. הרוחב של התמונה הוא כבר צריך להילקח מהיחס רוחב גובה של התמונה.
אז אם אתם יודעים שזו תמונה שהיא צריכה להיות אחד על אחד מבחינת מרובעת, אז אתם יכולים לשים בדיוק את אותו מספר כמו פה. ואם לא, אז אתם יכולים לקחת את המספר ששמתם, נגיד יצא לכם פה 30, אז אפשר לשים פה את ה-30, זו אופציה אחת.
אם לא, אתם יכולים לשים 30 כפול 1.5, אוקיי, אם אתם רוצים תמונה רחבה, לפי יחס רוחב גובה של התמונה. אז אותי זה מספק, אני רואה פה בעצם שהצלחנו לקחת את התמונה ולהציג אותה בצורה יפה.
זה הזמן להגיד שסיימנו פה עם התמונה. אם יש לכם שאלות, אתם כמובן מוזמנים לשאול. עכשיו, מה לגבי ולידציה? זה גם כן משהו שהוא נראה מתבקש. בן אדם מתחיל להקליט פה תיבת טקסט, מתחיל להקליט פה את האימייל ועוצר.
אני לא רוצה את זה, או שאין מספיק תווים. אני לא רוצה את זה, אני רוצה להיות מסוגל לעשות ולידציה בסיסית. כדי לעשות ולידציה בסיסית, אנחנו תופסים פה את הכפתורים ורוצים להגיד שהם Disable, שהם לא Enable.
בוא נעשה את זה. אז לפני שאנחנו מציגים את האלרט, בוא נאמר שאלרט נקודה אקשן זה המערך של האקשנים במקום האפס יש את הכפתור cancel שהאזור רוצה לבטל שיבטל במקום האחד איזה אקשן יש זה נכון הוא במקום האחד במערך זה המקום האפס במערך וזה המקום האחד אז במקום האחד במערך יש לנו את האקשן של הלוגין
אם אנחנו נאמר is enabled שווה לפלס אז הכפתור הזה הוא יהיה אף פעם לא מאופשר בוא נבדוק כן הכפתור disabled יפה מאוד מה שאנחנו רוצים זה שאם היוצר עכשיו מקליד מספיק תווים פה ב...נניח פאסוורד לצורך ההדגמה, אז שהכפתור הזה יתאפשר, ואם הוא ימחק אותם אז שהכפתור הזה יהיה שוב פעם דיסייבלד.
כדי לעשות את זה אני ממש צריך להזין לטקסט, אני צריך לדעת כל הזמן מה המצב של הטקסט, מה מצב העריכה של הטקסט. אז אנחנו נתפוס פה את הטקסט פילד השני של הפאסוורד, ובוא נגיד עליו פאס טקסט פילד, בוא נוסיף לך בעצם מאזין, add target עבור event target for control event ה target זה בעצם להוסיף מאזין מהקוד ה target יהיה האובייקט הנוכחי self ה view
controller שאני נמצא בו ובאקשן אנחנו פשוט צריכים לכתוב פה פונקציה למטה שתופעל ברגע שהאבנט יופעל האבנט דרך אגב הוא editing changed אז ברגע שהuser הקליט טקסט אנחנו רוצים שהפונקציה פה למטה תופעל בוא נקרא לה text changed והפונקציה שלנו טקסט צ'יינג' היא צריכה לקבל את הטקסט פילד אוקיי?
אז בוא נגיד לא אכפת לי איך לקרוא לו אבל טקסט פילד it will be והטייפ שלו הוא ui.text.field יפה?
הפונקציה צריכה להיות מאותרת ב-at objective c כדי שהפונקציה תהיה נגישה ל-run time של objective c אחרת הפעולה הזאת לא תעבוד. המחלקה הזאת view