שאלה של מתחילים...

drbunsen

New member
שאלה של מתחילים...

אני רוצה להציג גלריה - מספר THUMBS עם כיתוב מתחת לכל תמונה. את כל ה-THUMBS אני רוצה להוסיף ל-VIEW של VIEWCONTROLLER מסויים. את ה-THUMBS אני צריך ליצור בזמן ריצה על בסיס FEED מסויים שאני קורא. מה הדרך הטובה ביוטתר לעשות את זה? חשבתי ליצור SUBCLASS של UIVIEW עם NIB , וב-VIEWDIDLOAD של ה-VIEWCONTROLLER לקרוא את הפיד וליצור את האובייקטים הנ"ל, להוסיף כ-SUBVIEWS ל-VIEW של הקונטרולר, ולתת לכ"א FRAME ייחודי כך שיסודרו יפה בגריד. האם זו הדרך הנכונה? האם עדיף ליצור את ה-THUMB כ-VIEWCONTROLLER ולא כיורש של UIVIEW? תודה מראש MK
 

guyiphone

New member
לטעמי...

ואני מניח שגם תרצה להוסיף איזה Scroller לכל העסק הזה, לא? (אם תרצה עזרה בזה תגיד...) שאלה, האם יש לך את מספר התמונות אותן תצטרך להציג מראש? (אם לא עדיף שתארגן איזה respond שכזה) ולאחר שיהיה לך... אני הייתי יוצר תת אובייקט מסוג UIView שידע לפנות ע"י פרמטרי איתחול (initWithFrame) ל Feed מסויים ולקרא תמונה ולהציג אותה בתוכו בגודל הרצוי אך גם שישמור את נתוני התמונה הגדולה אותה אולי תצטרך מאוחר יותר. כל זאת עם הכיתוב ב- UILabel מתחת לכל תמונה. וכל זה כמובן בלולאה ע"פ מספר התומונות שישנם לייבא. לאחר שתקבל את כל התמונות לתוך מערך האובייקטים (NSMutableDictionary) תוכל להציג אותם בלולאה מקוננת (אחת אחרי השניה בכל סדר שתבחר ולפי האורינטציה של המכשיר כמובן) בתוך ה- Container של ה- Scroller שיכול לשבת בתוך - UIViewController . כמובן שהייתי יוצר מחלקה שעושה את זה בתחילת החיים של האפליקציה, ושומרת את המידע באיזה SingleTone שיוכל לספק לך את הנתונים לאורך המסכים השונים. במקרה זה לא הייתי מתעסק עם ה - IB מפאת סיבוך מיותר עם NIB Files. שיהיה בהצלחה !
 

drbunsen

New member
תודה על העזרה!

בינתיים כבר בניתי את זה על בסיס NIB + UIVIEW SUBCLASS . את הכל באמת זרקתי בתוך SCROLL עם PAGING עם UIVIEW SUBCLASS נוסף שמשמש כ-PAGE CONTROL (העיצוב הכריח אותי לעשות קסטומיזציה ולא להשתמש בPAGE CONTROL המקורי). וכמובן שכל זה נבנה עם טעינה אסינכרונית של התמונות ו-CACHING שלהם. בקיצור - "כיף" לפתח לאייפון
 

guyiphone

New member
מצויין ....

טוב לשמוע שכייף לאנשים לפתח לאייפון. אשמח לשמוע עוד פתרונות מעניינים ...
 

drbunsen

New member
אז הנה "דילמה" מעניינת (?)...

אני רוצה לטעון את המידע (מפידים שונים) לאפליקציה בצורה lazy רק לפי הצורך, כדי להקטין את התעבורה ככל האפשר. מצד שני אני זקוק לכל המידע כדי לאפשר חיפוש. איזו אפשרות נראית יותר סבירה: 1. לטעון את המידע לפי הצורך, ורק אם המשתמש מבצע חיפוש לטעון פיד עם כל המידע. (במקרה כזה כל המידע יהיה זמין מכאן והלאה, כמובן). 2. לטעון את כל המידע מראש בעליית האפליקציה (שיהיה לפיכך ארוך יותר, כמובן). אם המשתמש יבצע חיפוש - המידע יהיה זמין מיידית, אבל אם לא - סתם טענתי מידע מיותר.... אשמח לשמוע תובנות/השגות
 

guyiphone

New member
אז ככה ... (העיקר מעניינת :))

תראה אין שיטה אחת "נכונה" אך ישנן כמה יעילות יותר מהאחרות ... 1. ישנה אפשרות לייבא רק את הנושא אותו אתה מפלטר (כלומר רשימה של שדה אחד), בכך אתה למעשה מקטין משמעותית את כמות המידע בתעבורה ולמעשה מציג רק מה שצריך. השיטה דומה לחיפוש על שדה מאונדקס בבסיס נתונים עליו החיפושים תמיד יהיו קלים יותר. 2. אם אתה עושה חיפוש על הכל (הכוונה לכל השדות ולא לשדה אחד) - אזי השיטה תהיה ביצוע חיפוש על השרת, כן כן. בכל עדכון של טקסט החיפוש - אתה תתשאל את השרת לתוצאות והאחרון יתן לך מה שאתה צריך לרשימה. 3. אם אתה מתעקש לראות את כל הרשימה כל הזמן מבלי להתחכם אזי שייבוא כל הנתונים בצורה מקומפרסת (מכווצת) יספק את מבוקשך - ישנן מספר שיטות לכיווץ מידע אם תצטרך אוכל לעניין אותך בכמה מהן. 4. אם אתה ממש לא רוצה ללכת על אילו מהדרכים שציינתי ישנה אפשרות להציג בתחילה את הנתונים הראשוניים (כלומר למלא מסך אחד), ובכל דיפדוף לקרא מהשרת עוד נתונים, כך אתה מממש פעולה המשכית של ייבוא נתונים בצורה שלא תציק למשתמש - אך עדיין תהיה חייב לממש חיפוש עם אחת מהשיטת המוזכרות למעלה. יש לי עוד מספר שיטות יעילות יותר ופחות, אך נראה שלמימדי הפיתוח הנוכחי תוכל אולי תסתדר עם אלה שכתבתי. כמובן אם אלה לא מתאימות לך אוכל לכתוב לך עוד כמה רעיונות שאולי יעזרו לך. שיהיה בהצלחה ...
 

drbunsen

New member
תודה ../images/Emo45.gif

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

guyiphone

New member
אחלה , גם יעבוד ...

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