سؤال

UIView لديه خصائص frame, bounds, center, ، origin, و يبدو أنهم جميعا أن تكون مترابطة.معظم الوقت, أنا أتعامل مع frame عند تحديد موقع و حجم UIView.أنا أفهم أن frame هو العالمية باستخدام نظام الإحداثيات ، bounds يستخدم تنسيق من عرض محلي (ولذلك x و y 0 ، ولكن ليس دائما), لكنه لا يزال مربكا لي متى تستخدم ما.

تحت أي سياق (وما هو الوقت المناسب) الخصائص الأخرى (bounds, center, origin) التي يجب استخدامها ؟

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

المحلول

ماركو الإجابة أعلاه هو الصحيح ، ولكن فقط إلى التوسع في مسألة "تحت أي سياق"...

frame - هذا هو ملك لك في معظم الأحيان استخدام العادي تطبيقات آي فون.معظم ضوابط سيتم وضعها النسبي "التي تحتوي على" التحكم في ذلك الإطار.الأصل سوف تتوافق مباشرة إلى حيث التحكم يحتاج إلى عرض الإطار.حجم تحديد كيفية كبيرة لجعل التحكم.

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

حدود - هذه الخاصية ليست المواقع الممتلكات ، ولكن يحدد drawable مجال UIView "النسبية" إلى الإطار.افتراضيا هذا العقار عادة (0, 0, العرض, ارتفاع).تغيير هذه الخاصية تسمح لك لرسم خارج الإطار أو تقييد الرسم على منطقة صغيرة داخل الإطار.مناقشة جيدة هذا يمكن العثور عليها في الرابط أدناه.أنه من غير المألوف لهذه الخاصية أن تكون معالجته ما لم يكن هناك حاجة محددة لضبط رسم المنطقة.والاستثناء الوحيد هو أن معظم البرامج سوف تستخدم [[UIScreen mainScreen] bounds] على بدء التشغيل لتحديد المنطقة المرئية من أجل تطبيق الإعداد الأولي UIView هذا الإطار وفقا لذلك.

لماذا هل هناك إطار مستطيل و حدود المستطيل في UIView?

نأمل أن يساعد هذا توضيح الظروف حيث كل الممتلكات قد تحصل على استخدامها.

نصائح أخرى

ووالقيم المرتبطة هم، وأبقى متسقة من أساليب الخاصية اضع / جالبة (واستخدام حقيقة أن الإطار هو قيمة توليفها بحتة، لا تدعمها متغير مثيل الفعلي).

والمعادلات الرئيسية هي:

frame.origin = center - bounds.size / 2

(والذي هو نفس)

center = frame.origin + bounds.size / 2

(وهناك أيضا)

frame.size = bounds.size

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

وهذه الاشياء هو كل أوضح بمزيد من التفصيل مع مفيدة مصغرة مكتبة هنا:

http://bynomial.com/blog/؟p=24

وخصائص center، ومتشابكة bounds وframe: سوف تغيير واحد تحديث الآخرين، لذلك استخدامها كيفما تشاء. على سبيل المثال، بدلا من تعديل س / ص بارامس من frame إلى recenter وجهة نظر، مجرد تحديث الخاصية center.

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