
הטקסט המלא של הדקות הראשונות בהרצאה «גודל טבעי של פקדים ופתרון מצבי תחרות» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום וברוכים הבאים לפני שנוכל לדבר על הנושא הבא שלנו אנחנו צריכים לעבור על כמה מושגים בואו נסתכל רגע המושג הראשון שאנחנו רוצים להכיר הוא גודל טבעי של פקד באנגלית intrinsic content size גודל הטבעי של פקד הוא פשוט הגודל של הפקד בהתאם לתוכן שלו בואו נסתכל על מה מדובר אם אני אגרור לכאן label הגודל של הפקד יהיה הגודל של הטקסט פשוט
ככה בואו נחליף את הטקסט פה לטקסט יותר ארוך אז הגודל של הפקד יהיה בהתאם לטקסט, אוקיי? הוא נקבע בהתאם לטקסט, וגם אם הפון תגדל קצת אז הגודל של הפקד שוב פעם גדל בהתאם לתוכן שלו.
זה הגודל הטבעי. לפקדים שונים יש גודל טבעי שונה בהתאם לתמונה או בהתאם לטקסט, אבל אם יש לי שתי פקדים שמכילים את אותו טקסט אז הגודל הטבעי שלהם הוא זה, רואים?
נכון? אז זה המושג תוכן טבעי, בסדר? וגודל טבעי של פקד. המושג הבא שאנחנו רוצים לדבר עליו נקרא Content-Hugging Priority.
Content-Hugging Priority זה בעצם עניין של העדפה. העדפה עד כמה הפקד מעוניין להישאר בגודל הטבעי שלו.
מה זאת אומרת? זאת אומרת יש מצבים שבהם יש לי שני לייבלים ואני רוצה שהם יתפסו איכשהו את כל המסך. אז בהכרח ברגע שאני רוצה שהלייבלים יתפסו את כל המסך אחד מהם או אולי שניהם צריכים להתרחב.
על מה אני מדבר? בוא נשים רגע את שני הלייבלים בסטאק ויו, לחצתי פה פשוט על הכפתור סטאק ויו אחרי שסימנתי את שניהם, כמובן שסטאק ויו צריכים אילוצים, אז אנחנו פשוט נוסיף את האילוצים הרגילים שלנו על ידי הכפתור Add New Constraints, 16 משמאל, 16 מלמעלה ובוא נאמר 16 מימי,
ואני אשים פשוט את האילוצים, אוקיי? עכשיו, אם אנחנו נסתכל על Feel Equally אז דיברנו על זה, נכון? כל פקד תופס בדיוק חצי חץ, הלייבל הזה הוא חצי והלייבל הזה הוא חצי שני הפקדים יתרחבו מעבר לגודל הטבעי שלהם זה לא הגודל הטבעי של הפקד גודל הטבעי זה עד הלייבל אוקיי עכשיו בוא נחזור רגע לתכונה שלנו שדיברנו עליה
קונטנט האגינג פיוריטי הוא עניין של העדפה עד כמה הפקד מעדיף או מעוניין להישאר בגודל הטבעי שלו עד כמה הוא מעוניין לחבק כן להישאר בגודל הטבעי אני לא רוצה להתרחב אני רוצה פשוט לחבק לגודל הטבעי שלי עכשיו, למה אנחנו מזכירים את התכונה הזאת?
בואו נסתכל בדוגמה הבאה. קודם כל, כדי להבדיל בין שתי הלייבלים הזהים, אני פשוט אשנה את ה... בתכונות, אני אשנה את ה-Background של שניהם, כדי שהם ייראו שונה אחד מהשני.
אז יש לי את הלייבל בצבע תכלת ויש לי עוד לייבל אחר בצבע הזה. עכשיו, אם אנחנו מסתכלים לעומק על StackView וזה מה שאנחנו רוצים לעשות, אז יש פה בדיסטריביושן עוד אפשרויות חוץ מ-FillEqually.
יש פה אפשרות שנקראת Fill. פיל בעצם נותנת לאחד מהפקדים את השטח המיותר ולמי היא תיתן את השטח המיותר? בסדר? מה זאת אומרת? בוא נסתכל רגע. פיל לקחה את השטח העודף ונתנה אותו לאחד הפקדים.
הפקד השני נשאר בגודל הטבעי. עכשיו, יש לי פה גם איזושהי אזהרה שאומרת נתתי את השטח המיותר לאחד מהם כי לא ידעתי למי לתת. מה זאת אומרת לא ידעתי למי לתת?
לשתי הפקדים האלה כנראה יש את אותו מושג שדיברנו עליו content-hugging-priority, שהם מעדיפים באותה מידה לחבק, זאת אומרת להישאר בגודל הטבעי שלהם ואין אחד שהוא מעוניין יותר להיות הרחב יותר.
לא הגדרנו את זה, יש פה משהו לא מוגדר, מי יתרחב מבין שניהם. ומה שהאזהרה הזאת אומרת שהרחבתי את הראשון כי לא ידעתי את מי להרחיב. עכשיו, המטרה שלנו זה ללמוד, אז בוא נאמר שאנחנו דווקא רוצים שהלייבל השני, הסגול, יהיה זה שיתרחב.
איך נעשה את זה? אנחנו נרצה לשלוט בתכונה של ה-content hacking פריוריטי נלך לסייז אינספקטור שזה הסרגל הזה שעוזר לנו לערוך חילוצים ואנחנו רואים שיש פה את ה-content-hugging-priority לומר עד כמה הפקד שלנו מעוניין להישאר בגודל הטבעי שלו, עכשיו מה זה מעוניין?
מעוניין בתכנות זה לא מילה מובנת עד שאנחנו לא מבינים למעשה שזה טווח, טווח זה מספר בין 1 ל-1000 אוקיי עכשיו עד כמה הוא מעוניין להישאר בגודל הטבעי שלו אם אני אומר 1000 אז הוא מאוד מעוניין להישאר הוא אף פעם לא ירצה להתרחב אבל אם אני אומר שהוא לא כל כך מעוניין להישאר בגודל הטבעי שלו זאת אומרת נותן לו העדפה פה של אחד מתוך אלף אז זה יהיה הפקד שיתרחב אוקיי עכשיו טובה דוגמה
ותרגול מאשר שאתם אולי שואלים את עצמכם למה אני מסביר לכם את זה אז בואו נסתכל רגע על התרחיש הבא וזה תרחיש עיצובי מאוד נפוץ אני אקח טקסט פילד וכפתור עכשיו הטקסט פילד הזה אמור לשמש נניח הודעה שאנחנו רוצים לשלוח אז בפלייס הולדר שלו בוא נכתוב message וליד זה אנחנו רוצים לשים כפתור על הכפתור נכתוב שלח תור יהיה כפתור שליחה בהודעה גם אפשר כמובן לכתוב בעברית כן