سؤال

لقد كنت أعمل على توحيد UIVIEW المخصص ولديه القليل جدًا لتقوله في هذا الأمر. ما هو أكثر من ذلك ، بناءً على ردود الفعل ، فإن وثائق Apple خاطئة في بعض المناطق. أخيرًا ، على الرغم من وجود ستة مكونات تغيير حجمها في منشئ الواجهة وستة setAutoresizingMask: لا يبدو أنهم يرتبطون على الإطلاق. على سبيل المثال ، فإن ضبط نابض العرض في IB له تأثير مختلف عن تحديد autoresizingMask ل UIViewAutoresizingFlexibleWidth عند تدوير الجهاز.

هل هناك أي موارد جيدة للتعرف على كيفية تغيير حجم العمل على iPhone؟

تعديل:

أفهم المفاهيم الأساسية التي تستخدمها Apple مثل ContentMode ، وقد قرأت من خلال وثائق UIVIEW. أنا أبحث عن شيء يفسر بعمق أكثر قليلاً ما تفعله إعدادات IB من حيث ما هو متاح في SDK برمجيًا.

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

المحلول

وضع autoresizingMask ل UIViewAutoresizingFlexibleWidth, ، أي ما يعادل ضبط ربيع العرض ، بالإضافة إلى كل من الدعامات اليسرى واليسرى في باني الواجهة (تعني الدعامات أن الحافة هي ليس مرن). إذا كنت ترغب في تكرار سلوك تعيين ربيع العرض فقط ، ولكن ليس الدعامات اليمنى واليسرى ، فسيتعين عليك تعيين autoresizingMask ل UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin

نصائح أخرى

لقد وجدت هذا المنشور مفيدًا في فهم iOS التلقائي.

http://www.techotopia.com/index.php/ios_4_iphone_rotation،_view_resizing_and_layout_handling

من Apple:

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

... على سبيل المثال ، لنفترض أن هذه الخاصية تتضمن uiviewautoresizationflexiblewidth و uiviewautoresizingflexiblerightmrin لا يشمل ثابت UivieWautoresizingFlexIbleleftMargin مما يشير إلى أن ال تم إصلاح عرض الهامش الأيسر للعرض لكن عرض العرض والهامش الصحيح قد يتغير. وهكذا ، يبدو أن العرض مرسومًا على الجانب الأيسر من نظرته في حين زيادة عرض العرض والفجوة على يمين العرض.

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

لذا ، إذا كنت ترغب في وضع عرض مرسوم على الجانب العلوي والأيمن من نظرته ، فيمكنك تطبيق قناع مثل:

[myView setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin];

الرؤية الإشرافية لديها مثل هذه المعلمات ContentMode و Autoresizessubviews, ، كل شيء مع التلقائي من وجهات نظرها الفرعية تجعل السلوك تغيير حجمه

اقرأ باهتمام http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html

بالنسبة للسجل ، قمت بخدش رأسي لمدة ساعة لأن Uilabel من خط واحد لن يقلل من حجم الخط لتوصيل العرض. وأخيرا ، هذا فعل الحيلة:

label.contentMode = UIViewContentModeScaleAspectFit;

أنا غوغليت ولا يبدو أن أحد يوضح هذه التفاصيل (يخبرك الجميع أن التسمية يجب أن تكون سطرًا واحدًا ، وضبط AdventSfontsizetofitwidth/MinimumFontsize وما إلى ذلك). ربما تغيرت القيمة الافتراضية لهذه الخاصية؟ أنا على iOS 4.3.

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