PracticU

Hiding UIImages in a UIStackView and image Alpha for toggling On Off

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode › Hiding UIImages in a UIStackView and image Alpha for toggling On Off
מילון מושגים:
תמונה - קובץ גרפי המוצג על המסך. בהקשר של וירטואליזציה או Docker, תבנית מוכנה שממנה יוצרים מכונה או קונטיינר.
כפתור - רכיב בממשק המשתמש שהמשתמש לוחץ עליו כדי להפעיל פעולה, כמו שליחת טופס או מעבר לדף אחר.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.
מודל - רכיב שמייצג את הנתונים ואת הלוגיקה העסקית באפליקציה. גם ייצוג מופשט של מערכת או תהליך.

Hiding UIImages in a UIStackView and image Alpha for toggling On Off
בשיעור ממשיכים את התרגיל מהשיעור הקודם. התוספות נבחרות בלחיצה על כפתורים שמשנים את השקיפות שלהם, והמסך הסופי מציג את הפיצה שנבחרה, עם תוספות מוסתרות או מוצגות לפי הבחירה.
בחירת התוספות
- כל כפתור תוספת נשמר ב-Outlet, והפעולה של הלחיצה משותפת לכולם.
- הפונקציה מקבלת את הכפתור, ומתוך המילון מזהה איזו תוספת הוא מייצג.
- אם ה-alpha של הכפתור הוא 1, התוספת נבחרת והכפתור מקבל alpha של 0.5. אם הוא 0.5, התוספת מוסרת והכפתור חוזר ל-alpha של 1. המרצה משתמש בתנאי מקוצר (ternary).
- הוספה והסרה מתבצעות על ה-OptionSet של הפיצה, ובעזרת insert או remove.
מעבר למסך הסיכום
1. בכפתור Proceed מופעל Segue עם Identifier.
2. לפני המעבר, בפונקציה prepare, בודקים את ה-Identifier ואת ה-destination, וממירים אותו למסך ה-Checkout בעזרת as.
3. מעבירים לשם את הפיצה שנבחרה.
4. ב-viewDidLoad במסך הסיכום, מציבים את התמונה לפי הגודל של הפיצה, באמצעות switch על ה-enum. ה-switch חייב לכסות את כל המקרים.
5. לכל תוספת יש Image View נפרד. אם התוספת נמצאת בפיצה, היא מוצגת, ואם לא, היא מוסתרת.
המרצה מציין שהכפתורים לא צריכים להיות מסודרים כשרשרת של if, ושהמילון מאפשר לשנות את המיפוי בקלות.
הסיכום: לחיצה משנה את מצב הכפתור ואת מצב הפיצה, המעבר מועבר דרך prepare, והמסך הסופי מציג את הנתונים לפי מודל הנתונים.
השיעור הבא בקורס: UITextFieldDismissKeyboard - Dismissing the keyboard

פרקי ההרצאה: Hiding UIImages in a UIStackView and image Alpha for toggling On Off

  1. 00:00

    מבוא: בחירה והסתרת תוספות

  2. 00:39

    יצירת Outlets ו-Action לכל תוספת

  3. 02:51

    מעבר למסך התשלום עם Identifier

  4. 03:29

    משתנה פיצה אופציונלי במסך האחרון

  5. 04:46

    מיפוי כפתורים לתוספות ב-Dictionary

  6. 09:38

    שינוי שקיפות הכפתור בלחיצה

  7. 11:14

    תנאי מקוצר לקביעת השקיפות

  8. 12:47

    בדיקה אם להוסיף או להסיר תוספת

תמלול ההרצאה: Hiding UIImages in a UIStackView and image Alpha for toggling On Off

הטקסט המלא של הדקות הראשונות בהרצאה «Hiding UIImages in a UIStackView and image Alpha for toggling On Off» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    אז מה שאנחנו בסך הכל רוצים לעשות זה לאפשר בחירה של המוצרים. זאת אומרת היינו רוצים נניח לבחור מוצר או שניים או לא לבחור מוצר אחר או מוצר אחר כן לבחור.

  2. 00:13

    למשל אם אני רוצה את הזיתים אז אני משאיר אותם, אחרת אני מסמן שאני לא מעוניין בזיתים ולהפך. בסדר? אחר כך אנחנו נרצה ללחוץ כאן על הפרוסיד טו צ'ק אאוט ולהעביר את כל הנתונים לביו קונטרולר הבא.

  3. 00:26

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

  4. 00:52

    ואני אפתח פה את האסיסטנט אדיטור יפה מה שאני רואה פה שכתוב אינטרנל וזה לא טוב אנחנו יודעים שתמיד צריך להיות כתוב פה אוטומטיק גם אצלכם נכון ובצורה אוטומטית אבל נגרור לנו הקלטים כמו שאנחנו יודעים נהדר אז מהכפתור הראשון אתם רואים שזה עגבנייה אנחנו ננסה להיות כמה שיותר קריאים btn tomato אוקיי השני זה הכפתור של הזיתים

  5. 01:24

    אני אגרור ממנו גם כן outlet נקרא לזה btn olives כפתור של הגבינה btn cheese outlet וכפתור של הבצל btn onions אז ארבע כפתורים ארבע outletים אמרנו שאנחנו רוצים גם אקשן אז בואו נעשה אחד אני יורד קצת למטה כדי שיהיה לי מקום מעל הviewed load כמובן זה המקום שאפשר לשים בו אקשנים עשיתי פה אקשן

  6. 01:34

    ל btn tomato שייכנס פה לפעולה אז אני משנה כמובן לאקשן את הטייפ אנחנו משנים ל-ui בטון ובוא נקרא לזה טופינגס או טופינג שם לב שזה באופן כללי זה לא מדבר פה על עגבנייה אלא על כל הטופינגס והסיבה זה שאני פשוט רוצה להשתמש בפעולה הזאת עבור כל אחד מארבעת הכפתורים שלנו עבור כל אחד מהטופינגס למחזר את אותו קוד ולעשות קוד ריוזר יפה אז יש לנו ארבע טופינגס וכולם

  7. 02:32

    ממופים לארבע אאוטלטים ולארבע אקשנים בהמשך אנחנו גם נלמד איך להירשם לאירועים מהקוד וככה אם יש לנו הרבה אאוטלטים והרבה אקשנים אולי היה יותר נוח לעשות את זה בצורה גנרית יותר אבל לאט לאט אתם תמיד לומדים המון ואנחנו נלמד כל דבר בעיתון.

  8. 02:53

    מה שנשאר לי זה לסגור פה את ה-assistant editor ואנחנו רוצים לגרור segway עבור proceed to checkout אז אני פשוט תופס את הכפתור של ה-proceed to checkout ואנחנו מושכים פה איזשהו show segway כרגיל שיוביל אותנו למסך הזה ואתם יודעים רצוי שכל פעם כשאנחנו מוסיפים segway אנחנו כמובן ניתן לו identifier כדי שנזהה את הסגווי. אני אקרא לסגווי שלי צ'קאוט כי מה שאנחנו

  9. 03:17

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

  10. 03:38

    איך אנחנו עושים את זה? אנחנו לוקחים ל-topics, ל-checkout view controller האחרון, ובואו נוסיף לו פה משתנה פשוט מאוד מסוג פיצה, בסדר? זה מה שיעזור לי פשוט לקבל פה את התוצאות בצורה נוחה.

  11. 03:53

    אז הלכתי ל-checkout view controller והוספתי משתנה מסוג פיצה, הוא אופציונל, ואנחנו בהמשך הסרטון כמובן נראה איך זה בא לידי ביטוי. יפה.

  12. 04:05

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

  13. 04:17

    כשלחצו על כפתור על איזשהו סנדר נגיד נקרא לו btn בשביל עצמנו זה לא משנה השם השאלה כל פעם כשלחצו על כפתור איך אני ממפה את זה לאחד מה btnים האלה, יכול לעשות if ה btn שווה ל btn tomato, if ה btn שווה ל btn olives אז אני רוצה להוסיף תוספת לפיצה, זו אופציה טובה זה אפשרי, בנוסף יש אופציות טובות יותר למשל אני יכול

  14. 04:44

    להגדיר איזשהו דיקשנרי של כל מיני תוספות וככה לעשות את זה בצורה קצת יותר אלגנטית. אז בואו נבחר בדרך השנייה כי אנחנו קצת מכירים מבנה נתונים ואפילו קצת הרבה למדנו אז בואו ננסה להשתמש בזה לטובתנו.

  15. 05:00

    אנחנו נגדיר לעצמנו איזשהו דיקשנרי שהוא פשוט ממפה בין btn לטופינגס בסדר הוא מפ כזה ומה שהוא הטייפ שלו זה דיקשנרי והדיקשנרי הוא דיקשנרי של בוא נאמר ui-bottom לפיצה טופינג בסדר זה הטייפ שאנחנו נגדר וכרגע אנחנו נעשה את זה פשוט דיקשנרי חדש מתאים איך

  16. 05:31

    אנחנו מתחילים את זה רק אחרי view did load בזמן שהפקדים האלה כבר יש להם ערך והם לא נעיל כי הם בהתחלה בהתחלה בהתחלה הם נעיל עד שהמסך נטען ואז הם לא נעיל ב-view did load אני אוכל לאכלס את כל הטופינג שלי בסדר אני יכול להגדיר כאן את כל הכפתורים

  17. 05:50

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

  18. 06:05

    עכשיו ב-view did load בואו נמלא את ה-map. אני רוצה עוד פעם, המטרה שלי כרגע זה להגיד אם לחצו על טומטו נבחר בתוספת של טומטו, אם בחרו על אוליב נבחר בתוספת של אוליב, בסדר?

  19. 06:18

    כדי לעשות את זה אני משתמש ב-map. map זה מבנה נתונים שממפה key values, זאת אומרת ממפה במקרה שלי כפתור ל-topic. אז מה שאני עושה אני אומר פשוט btn המפ שלי במקום ה btn tomato שווה לפיצה טופינג מסוג טומטו כגדולה נכון יפה עכשיו שימו לב שאפשר לכתוב את זה נורא בקצרה בצורה הזאת בסדר אז אם זה גם כן יש פה type inference הרי אז הכל טוב בוא נעשה

  20. 06:59

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

  21. 07:27

    במקום לעשות מלא e-felsif. אם פתרתם את זה עם e-felsif או איזה סוויץ' או דברים אחרים, אז מה טוב, אבל אנחנו כאן כדי ללמוד, ואני מראה לכם דרך שהיא נחשבת בעיני רבים ליותר אלגנטית, איך שאתם רוצים.

  22. 07:43

    יפה, אז כאן אני יודע על מה לחצו, נכון? ה-BTN הזה אומר לי איזה תוספת בעצם. אז בואו אני אראה לכם איזה יופי זה נראה, אנחנו פשוט רוצים להדפיס את התוספת כדי לראות שהצלחנו, אז let topping שאנחנו כרגע עובדים עליו, בואו נגיד זה יהיה שווה ל-map שלי שקוראים לו btn-toppings-map במקום ה-BTN,

  23. 08:06

    בסדר? כמובן אנחנו רוצים לבדוק שהוא אכן מצא שם משהו, אז אני אגיד אחרת זה החוצה ואין לי מה לחפש פה תכל'ס במקרה כזה, אחרת return.

  24. 08:17

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

  25. 08:29

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

  26. 08:41

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

  27. 09:06

    מאוד מצוין ובאמת כמו שאתם רואים בסדר צ'יז נתן לי 16 ואוליבס נתן לנו את ה-4 אז הכל טוב מצוין והטומטוס שאחצנו עליו נתן לנו את ה-2 אז יפה כל כל הסיפור שלנו עובד נהדר.

  28. 09:22

    אמנם אנחנו ככה מתאמצים פה בתכנות, אבל אנחנו על הדרך לומדים, משלימים פה מלא קורסים של מבנה נתונים ואיך משתמשים בהם וכך הלאה. יפה.

  29. 09:33

    אז תנו לעצמכם תפיחה על השכם, כי עשינו פה הרבה עבודה טובה בזיהוי ובידע, והדבר הבא שאנחנו רוצים לעשות זה להחשיך טיפה את הכפתור שלחצו עליו, במידה והוא עדיין לחוץ.

  30. 09:46

    מה זאת אומרת? בואו נראה תכלס הורדתי מפה את הפרינט סטייטמן חברים כי אנחנו לא רוצים להדפיס אנחנו רוצים באמת אחר כך להתקדם עם זה אבל לפני שנתקדם זה משימה אחת רוויץ' טופינג איזה עוד משימות יש לנו לסדר את העניין עם הכפתור נכון גרי או אנגרי דה בטו נכון בהתאם למה בהתאם להאם רוצים שנלחץ או לא רוצים שנוסיף את התוספת כלומר btn.alpha אפשר להתחיל בצורה נאיבית

  31. 10:19

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

  32. 10:44

    אלפא חצי שזה מגניב זה נראה יפה זה בדיוק מה שרציתי אבל אני רוצה שאם לוחצים פעם נוספת שיחזור לאפס אז שיחזור לאחד סליחה אז איך עושים אנחנו רוצים להגיד ככה btn.alpha שווה אם ה btn.alpha הנוכחי שווה כבר לחצי בסדר אז נשים שם אחד אחרת נשים שם חצי הדבר הזה זה משפט תנאי מקוצר משפט תנאי מאוד מאוד פשוט כאן אנחנו בצד הזה כותבים

  33. 11:17

    את התנאי עצמו condition מפה עד לפה זה התנאי בסדר זה תנאי הערך אם התנאי מתקיים אם זה true אז אני שם פה אחד אחרת אני שם פה חצי זה החלק של ה-else אוקיי אז אם אתם צריכים פה איזה שהם הסברים והערות לעצמכם כדי ללמוד את החלק הזה by all means כדאי זה value if false נכון זה הערך אם התנאי לא יתקיים וזה הערך אם התנאי

  34. 11:49

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

  35. 12:01

    אז בשבילכם זה לא הערה טריוויאלית, בשבילכם אולי זה מעניין, אבל אחרי שלמדתם אתם כבר יודעים את זה נהדר. אוקיי? אז גריי או אנגריי דה בטון.

  36. 12:10

    בואו נבדוק את המשפט תנאי המקוצרר הזה. בואו נריץ פה דיקונט, לוחץ כדי להגיע למסך הרלוונטי, לוחץ על התוספת, מגיע, לוחץ פעם נוספת, הופ, יפה, לוחץ פעם נוספת, מגניב רואים אז יש לנו ככה את המנגנון שרצינו גם פה נהדר עכשיו משימה הבאה האם אני צריך להוסיף תוספת או להוריד אותה should i add

  37. 12:40

    or remove נכון אני פשוט עונה על שאלה אחרי שאלה ככה אני מתקדם בתכנות איך אני יודע אם אני צריך להוריד או להחסיר אם האלפא של הדבר הזה הוא אחד אז אנחנו צריכים להוסיף את התוספת בוא נגדיר בוליאני עבור המשימה אני מנסה אותו כלת כי הוא לא הולך להשתנות פה אז let add should add שווה btn.alpha שווה שווה 1. אם כן מוסיפים לו נכון?

  38. 13:20

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

  39. 13:47

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

לקורס המלא: קורס פיתוח אפליקציות לאייפון

ההרצאה הקודמת: UINaviagationControllers - Practice

ההרצאה הבאה: UITextFieldDismissKeyboard - Dismissing the keyboard

הרצאות קשורות מקורסים אחרים

  • Download Image
  • Publish Image
  • Glance image service
  • הוספת דרייברים ל-IMAGE

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון
  • קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון