إدجيسفوركستندلايوت دوران إيفيوكونترولر
ما هو الكائن المسؤول عن ديباتشينغ المكالمات طريقة دوران إيفيوكونترولر، أي: يجب أنوتوروتاتيتوينتيرفاسورينتاتيون: ويلروتاتيتوينتيرفاسورينتاتيون: المدة: ويلانيماتيفيرستالفوفروتاتيونتوينتيرفاسورينتاتيون: المدة: ويلانيماتيسيكوندالفروتاتيونفرومينترفيسورينتاتيون: المدة: ديدروتاتفرومينتيرفاسوريينتاتيون: أتصور أنه أويابليكاتيون (ولكن ربما أبديليغات أو أوويندو). والسؤال التالي هو كيف يعرف الكائن أي إيفيوكونترولر للتحدث إلى كيف يعرف أي إيفيوكونترولر لديه وجهة نظره كما سوبفيو من النافذة هل هناك رسالة يمكنك إرسالها أو خاصية يمكنك تعيين (من بعض الكائن) الذي يحدد و إيفيوكونترولر النشطة للتطبيق يبدو أن يوابليكاتيون هو إيفاد رسالة إلى وحدة تحكم عرض نشطة. ولكن كيف تحصل مثيل وحدة التحكم عرض هذه الرسائل تتم إعادة توجيه الرسالة إلى وحدة تحكم المشاهدة الأولى التي تمت إضافة طريقة العرض إلى مثيل أوويندو. هذا يتلخص في 3 سيناريوهات أساسية: فيوكونترولر الذي يتم إضافة وجهة نظره مباشرة إلى مثيل أوويندو (تطبيق عرض واحد) وحدة تحكم التنقل في تطبيق يستند إلى التنقل، ثم وحدة تحكم التنقل إعادة توجيه الرسالة إلى وحدة تحكم عرض المشاهدات النشطة. شريط تحكم شريط التبويب في شريط يستند إلى التطبيق القائمة، ثم وحدة تحكم شريط علامة التبويب توجيه الرسالة إلى المراقب الشخصي عرض المشاهدات النشطة (أو وحدة تحكم الملاحة النشطة). المشكلة سيكون لديك، هو إذا كنت بناء التطبيق مع وجهات نظر متعددة، ولكن لا تستخدم وحدة تحكم الملاحة أو وحدة تحكم شريط التبويب. إذا قمت بتبديل طرق العرض داخل مثيل أوويندو وإخراجه يدويا، فلن تتلقى هذه الرسائل بشكل موثوق. هذا يشبه وظائف مثل هذا واحد: عرض إفون ويلابير لا إطلاق مجرد استخدام التفاح الاتفاقيات لعدة وجهات نظر وكنت على ما يرام. نأمل أن هذا يحفظ بعض واحد ساعة أو اثنين كوري، كيف يمكن للحد من نفسه إلى واحد فك لكل شاشة، عندما على سبيل المثال لديك التطبيق الذي يحتاج إلى اثنين من وجهات النظر الجدول على نفس الشاشة You39d تحتاج إلى فك لكل عرض الجدول، ثم وهو فك لإدارة كل منهما. أو النظر في مثال آخر: التطبيق الذي يحتاج شريط التبويب مثل السلوك ولكن لمتطلبات غرافيكالارت يحتاج إلى وحدة تحكم شريط علامة التبويب مخصص وجود واحد فقط فك لكل شاشة يبدو هدفا غير قابل للتطبيق لمعايير المحاسبة الدولية المعقدة. في هذه الحالات، يجب أن يكون هناك طريقة معينة للسيطرة موثوق الأحداث واجهة التناوب نداش ياثانوثرجوش مار 22 11 في 1:53 في الاختبارات الخاصة بي، وجدت I39ve أنه عندما التعشيش وجهات النظر التي لديها وحدات تحكم عرض مختلفة السيطرة عليها، فإنه يمكن في بعض الأحيان يكون تعسفيا الرأي وحدة تحكم يتلقى رسالة سوفتوروتاتتوينتيرفاسورينتاتيون - it39s بالتأكيد لم يتم إرسالها دائما إلى وحدة تحكم المشاهدة التي تدير أعلى وجهة نظر الطفل من التسلسل الهرمي UIWindow39s - يمكن بالتأكيد أن يتم إرسالها إلى عرض وحدات تحكم المقابلة لأطفال وجهة النظر وجهة نظر 39 هذه. نداش يتانوثرجوش مار 22 11 في 01:57 كيف أنها تعرف أي إيفيوكونترولر لديه وجهة نظره كما سوبفيو من نافذة فئة إيفيوكونترولر يحافظ على خريطة ثابتة بين وجهات النظر وأجهزة التحكم عرض. يتم الاستعلام عن هذه الخريطة في عدد قليل من الأماكن الرئيسية داخل كوكواتش. على وجه الخصوص، يفيو نكستريسبوندر يستعلم ذلك وإرجاع وحدة تحكم إذا وجدت. أعتقد أويندو يفعل نفس البحث مع وجهة نظرها الجذر لمعرفة أي وحدة تحكم لإعادة توجيه الأحداث التناوب ل. سوف تحقق هذا المرة القادمة إل تبحث شيئا حتى في التفكيك. (إيف قضى بعض الوقت عكس الهندسة كوكوتوش لفهم كيف تعمل الأشياء هناك.) أجاب مايو 6 09 في 11:15 هذا هو كل ماجيك أنت لا تقلق من أي وقت مضى حول. ما عليك سوى إضافة عرض جذر وحدة التحكم الخاصة بك إلى النافذة - أو الحصول على شريط علامة التبويب أو وحدة تحكم التنقل للقيام بذلك بالنسبة لك - وسوف تتلقى هذه الرسائل. (ولكن إذا كنت كزة حول مع المصحح، قد تأتي إلى نفس الاستنتاج لدي: ثيريس بعض نوع من الجدول الداخلي تعيين كل وحدات تحكم عرض مرة أخرى إلى وحدة تحكم، ويتم إرسال الرسائل على أساس هذا الارتباط.) تحديث: كان هذا السحر الخاص حقا في عام 2009 عندما كتبت لأول مرة هذه الإجابة، ولكن التغييرات اللاحقة على دائرة الرقابة الداخلية جعلت واجهات برمجة التطبيقات وراء ذلك العام. وحدة تحكم عرض الجذر يمكن الوصول إليها الآن من خلال الخاصية UIWindow. rootViewController، ويتم تكوين شجرة وحدات تحكم عرض المتسلسل باستخدام الخاصية UIViewController. childViewControllers. تكون وحدات تحكم عرض الوالدين مسؤولة عن إخطار أطفالهم بتغييرات التوجه. (إم غير متأكد كيف يتم إخطار وحدة تحكم عرض الجذر، ولكن هل يمكن تعيين نقطة توقف ومعرفة نفسك.) الأسلوب - shouldAutomaticallyForwardRotationMethods يقرر ما إذا سوف إيفيوكونترولر القيام بذلك بالنسبة لك. إذا كانت ترجع نو. تصبح مسؤولا عن القيام بذلك في الخاص بك - willRotateToInterfaceOrientation: المدة. - willAnimateRotationToInterfaceOrientation: المدة. و - didRotateFromInterfaceOrientation: الأساليب. أجاب فب 14 09 في 0:42 لدي مشكلة مماثلة. لدي لعبة تعمل في اتجاه أفقي (على حد سواء اليسار واليمين المشهد). من أجل إدارة تطبيق متعدد عرض يمكنني استخدام أويفيوكونترولر الجذر، أي ويفيوكونترولر وهمية مع أويفيو أن لا يفعل شيئا. ثم أضف كل أويفيو الأخرى إليه كعرض فرعي. عند بدء تشغيل التطبيق، ومحاكي يدور بسرعة إلى اتجاه عمودي، وأحصل على كل واحد من وجهات نظري مع الخاصية الإطار تبدو مثل (0، -80،320،480). يؤدي هذا إلى أن يكون المنظر مقطوعا بمستطيل 160 × 320 على الجانب الأيمن. لاحظت أنه يجب أن يتم استدعاء الأسلوب يجب أن يسمى كل مرة واحدة، وهذا يحدث عند إضافته إلى طريقة العرض الجذر. في وقت لاحق، عند تدوير الجهاز، فقط يحصل على عرض الجذر أسلوبه يسمى. لا يثير الدهشة، يتم إرسال أي واحدة من إرادة أساليب المكالمات فقط إلى عرض الجذر، لذلك، وتحديد أي من هذه الأساليب في سوبفيوس لا طائل منه. وتسمى هذه الطرق في كل مرة يتم تغيير التوجه إلى التوجه المقبول من قبل يجب أنوتوروتاتتوينتيرفيسورينتاتيون: الأسلوب. لذلك أنا أحسب أنني يمكن أن تشنيج بلدي سوبفيوس إطار الممتلكات من هناك. لتحقيق ذلك، قمت بتعريف الأسلوب التالي في فئة روتفيوكونترولر بلدي: أنا لا أفهم لماذا لم يتم تحديث الخاصية الإطار، ولكن أنا أعرف هذا الحل البديل. نأمل أن يساعد هذا. دليل لايوت واحدة من مسؤوليات حاوية تحكم عرض هو تخطيط وجهات نظر عرض رأي الطفل. هذا الدليل يذهب كيف يمكنك السيطرة عليه. تكشف مقابل نظرة خاطفة هذه هي الطريقة التي تحدد الموقف الأفقي من وجهة نظر أعلى عندما يرتكز على الجانب. من المهم أن نعرف الفرق بين الكشف عن الراسية وكمية خاطفة الراسية عند دعم توجهات متعددة وأحجام الشاشة. إذا كنت بحاجة فقط إلى دعم اتجاه واحد على حجم شاشة معينة، ثم لا يهم الفرق. الكشف عن المبلغ الأفقي من تحت عرض لإظهار. نظرة خاطفة المبلغ الأفقي من أعلى عرض لتظهر. اصطلاح تسمية للخصائص: مرساة (يسار أو يمين) (تكشف أو نظرة خاطفة) المبلغ. مزيج من كل الاحتمالات يؤدي إلى هذه الخصائص الأربعة: أنكورليفتبيكامونت أنكورليفتريفالامونت أنكورتبيكامونت مرساة ريتريفيالامونت تعيين مبلغ كشف على جانب واحد سوف حساب مبلغ خاطفة لنفس الجانب والعكس بالعكس. وسوف تكون الخاصية التي قمت بتعيينها قيمة ثابتة مما يؤدي إلى حساب الآخر. هذا هو خاصية بنيت في إيفيوكونترولر. هيريس وصفا من دليل تشغيل أوي 7 أوس: تستخدم الخاصية إدجيسفوركستاندلايوت نوع أويركتيدج، الذي يحدد كل مستطيل من أربعة حواف، بالإضافة إلى تحديد لا شيء وكل. استخدم حواففوركستاندلايوت لتحديد حواف العرض التي يجب توسيعها، بغض النظر عن شفافية الشريط. افتراضيا، قيمة هذه الخاصية هي أويركتيدجال. يستخدم إسليدينجفيوكونترولر هذه القيمة لتحديد أي من حواف وجهات النظر لتمتد إلى الحاوية. إذا لم يتم تمديد الحافة ثم سيتم وضعها في دليل تخطيط. هذا هو نفس السلوك مثل حاويات تحكم عرض ويكيت، إلا أن الحواف الجانبية لها معنى. سيؤدي ترك أويركتيدجيتوب خارج قناع ذي إدجيسفوركستاندلايوت إلى وضع الحافة العلوية في دليل التخطيط العلوي. ترك أويركتيدجيبوتوم من قناع حواففوركستاندلايوت سيضع الحافة العلوية في دليل تخطيط السفلي. ترك أويركتيدجليفت من قناع حواففوركستنددلايوت وضع الحافة اليسرى إلى حيث أعلى وجهات النظر الحافة اليمنى سيكون عندما الراسية اليسار. هذا يؤثر فقط على وحدات التحكم عرض تستخدم وندرريتفيوكونترولر. ويمكن أن تحتل إما عرض كامل للحاوية أو أنها سوف تساوي المبلغ كشف (سواء كان ثابت أو محسوب). ترك أويركتيدجريت من قناع حواففوركستنددلايوت وضع الحافة اليمنى إلى حيث أعلى وجهات النظر الحافة اليسرى سيكون عندما الراسية الحق. هذا يؤثر فقط على وحدات تحكم العرض المستخدمة و وندرليفتفيوكونترولر. ويمكن أن تحتل إما عرض كامل للحاوية أو أنها سوف تساوي المبلغ كشف (سواء كان ثابت أو محسوب). قد يتم تخصيص التخطيط لأعلى وتحت وجهات النظر. يتم ذلك إنشاء كائن يتوافق مع بروتوكول إكسليدينجفيوكونترولرلايوت والعودة في طريقة التحكم في عرض انزلاق طريقة التفويض: سليدينغفيوكونترولر: لايوتكونتروليرفورتوبفيوبوسيتيون: إكسليدينجفيوكونترولرلايوت لديه طريقة واحدة لتنفيذ: من المتوقع أن ترجع سغريكت يمثل إطار للمراقب عرض معين و topViewPosition. يمكنك العودة سغركتينفينيت إلى تراجع على التخطيط الافتراضي. إرجاع سغريكت التي يتم احتسابها على أساس إطار عرض سليدينغفيوكونترولر s. إذا كانت ثابتة أو استنادا إلى إطار الشاشات، ثم التغييرات دوران والحدود قد كسر تخطيط. وضع وجهة نظر أعلى وفقا ل سليدينغفيوكونترولر s كميات الراسية. الحفاظ على الدلالات من توبفيوبوسيتيون. على سبيل المثال، إذا كان توبفيوبوسيتيون إسليدينجفيوكونترولرتوبفيوبوسيتيونانكوريدرايت. ثم وضع أعلى عرض في مكان ما إلى اليمين. منذ ما سبق اقتراحات. لم يكن لديك لمتابعة لهم. تعرف فقط العواقب التي قد كسر تخطيط دوران أو الدلالات من أكسلندفيوكونترولر أبي.
Comments
Post a Comment