سؤال

لدي NSView استضافة طبقة (-isflipped = نعم) مع ثلاث مرات استضافة طبقة. الرؤية الفرعية هي رأس ، منطقة محتوى ، وتذييل. يحتوي الرأس على مثلث الإفصاح الذي سينهار طريقة عرض المحتوى ويظهر فقط رأس وتذييل عالقان معًا.

يمكنني إنجاز هذا بسهولة مع الرسوم المتحركة الأساسية ، ولكن هناك مشكلة غريبة تحدث عند تغيير حجم العرض. إذا قمت بتغيير حجم العرض أفقيًا ، فأنا أريد أن تتطابق جميع المشاهدات الفرعية الثلاثة مع العرض الجديد. إذا قمت بتغيير حجمه رأسياً ، فأريد أن تظل الرؤية الفرعية في مكانها (أي الحافة السفلية للمنظر يجب أن تكون قادرة على التحرك دون التأثير على موضع الرؤية الفرعية (باستثناء القطع بالطبع). والسبب في ذلك هو أنني بحاجة إلى الانهيار حجم العرض عندما يتلاشى ContentView.

ما يحدث بالفعل هو أنه يتم دفع جميع المشاهدات الفرعية الثلاثة فوق الجزء العلوي من العرض عند تغيير الارتفاع ... ثم يتم التخلص منها مرة أخرى عند تغيير الأفقي. له علاقة بمجموعة كل من العرض والمشاهدات الفرعية ، لأنه إذا تم وضع المشاهد الفرعية مباشرة في النافذة ، فإنها تتصرف بشكل صحيح. أيضا ، حاولت إضافة زر في العرض وتصرف بشكل طبيعي.

تمكنت من الحصول على الزر لإساءة التصرف بنفس الطريقة بجعله مدعومًا بالطبقة أيضًا ... لذلك أعتقد أن دعم الطبقة له علاقة به.

يبدو الأمر كما لو أن طبقات الدعم تتعثر في عرض الوالدين أثناء قيامه بتغيير حجمه ودفعه على الرغم من انقلب الإحداثيات.

أيه أفكار؟

هل كانت مفيدة؟

المحلول

لا ينبغي أن تحتوي طرق العرض على استضافة الطبقة. انظر -(void) setWantslayer: الوثائق في مرجع فئة NSView:

http://developer.apple.com/library/mac/#documentation/cocoa/reference/applicationkit/classes/nsview_class/reference/nsview.html٪23//apple_ref/occ/instm/nsview/setwantsloyer:

قد يكون عرض الجذر عرضًا مدعومًا بالطبقة بدلاً من طبقة تستضيف واحدة؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top