PracticU

גודל טבעי של פקדים ופתרון מצבי תחרות

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode › גודל טבעי של פקדים ופתרון מצבי תחרות
גודל טבעי של פקדים ופתרון מצבי תחרות
כדי להבין למה פקדים בתוך Stack מתרחבים או נשארים בגודלם, צריך להכיר שני מושגים: הגודל הטבעי של הפקד וקדימות ההיצמדות לתוכן.
מושגים בסיסיים
1. גודל טבעי (Intrinsic Content Size): הגודל שפקד מקבל לפי התוכן שלו. Label מתכווץ ומתרחב לפי הטקסט, ושני פקדים עם אותו טקסט יהיו באותו גודל טבעי.
2. Content Hugging Priority: עד כמה הפקד מעדיף להישאר בגודל הטבעי שלו. הערך נע בין 1 ל-1000, וככל שהוא גבוה יותר, הפקד פחות מתרחב.
תרחיש עם שני Labels
כששני Labels נמצאים ב-Stack עם Fill Equally, כל אחד מהם מתרחב מעבר לגודל הטבעי שלו. בהתפלגות Fill השטח העודף ניתן לאחד מהם, ומופיעה אזהרה: לשניהם אותה קדימות חיבוק, ולכן המערכת לא יודעת למי לתת. כדי שהלייבל הסגול יתרחב, מגדירים לו ב-Size Inspector ערך נמוך של Content Hugging Priority, קרוב ל-1.
תרגיל: טקסט פילד וכפתור
בשדה הודעה טבעי, הטקסט פילד צריך לתפוס את השטח הנותר והכפתור צריך להישאר בגודל הטבעי שלו. הפתרון שמוצג: מגדירים לכפתור קדימות חיבוק גבוהה, כך שהוא נשאר בגודל שלו, והטקסט פילד הוא זה שמתרחב.
כשמופיעה אזהרת Content Priority Ambiguity, צריך להגדיר מי מהפקדים מותר לו להתרחב.
השיעור הבא בקורס: תרגילים מסכמים בנושא עיצוב

פרקי ההרצאה: גודל טבעי של פקדים ופתרון מצבי תחרות

  1. 00:00

    גודל טבעי של פקד לפי התוכן שלו

  2. 00:56

    הכרת Content-Hugging Priority ומשמעותה

  3. 01:34

    אילוצים ל-Stack View עם שני לייבלים

  4. 02:12

    התרחבות פקדים מעבר לגודל הטבעי שלהם

  5. 03:10

    אפשרות Fill לתת את השטח העודף לפקד

  6. 03:45

    אזהרת עדיפות זהה בין שני פקדים

  7. 04:20

    שליטה בעדיפות החיבוק בסייז אינספקטור

  8. 04:57

    תרגיל: שדה טקסט וכפתור שליחה

תמלול ההרצאה: גודל טבעי של פקדים ופתרון מצבי תחרות

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

  1. 00:02

    שלום וברוכים הבאים לפני שנוכל לדבר על הנושא הבא שלנו אנחנו צריכים לעבור על כמה מושגים בואו נסתכל רגע המושג הראשון שאנחנו רוצים להכיר הוא גודל טבעי של פקד באנגלית intrinsic content size גודל הטבעי של פקד הוא פשוט הגודל של הפקד בהתאם לתוכן שלו בואו נסתכל על מה מדובר אם אני אגרור לכאן label הגודל של הפקד יהיה הגודל של הטקסט פשוט

  2. 00:29

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

  3. 00:45

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

  4. 01:03

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

  5. 01:13

    Content-Hugging Priority זה בעצם עניין של העדפה. העדפה עד כמה הפקד מעוניין להישאר בגודל הטבעי שלו.

  6. 01:22

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

  7. 01:38

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

  8. 02:02

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

  9. 02:29

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

  10. 02:47

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

  11. 03:00

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

  12. 03:18

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

  13. 03:34

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

  14. 03:45

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

  15. 04:01

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

  16. 04:17

    איך נעשה את זה? אנחנו נרצה לשלוט בתכונה של ה-content hacking פריוריטי נלך לסייז אינספקטור שזה הסרגל הזה שעוזר לנו לערוך חילוצים ואנחנו רואים שיש פה את ה-content-hugging-priority לומר עד כמה הפקד שלנו מעוניין להישאר בגודל הטבעי שלו, עכשיו מה זה מעוניין?

  17. 04:35

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

  18. 05:07

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

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

ההרצאה הקודמת: StackView - Alignemnt

ההרצאה הבאה: תרגילים מסכמים בנושא עיצוב

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

  • Controls -פקדים נפוצים - חלק 1

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

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