سؤال

ما هي أفضل الممارسات لتعيين عامل التكبير/التصغير للصورة داخل IKImageView عبر NSSlider؟

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

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

المحلول

يوضح هذا العرض التوضيحي الكثير: ImageKitDemo

على وجه الخصوص، هذا المقتطف هو ما كنت أبحث عنه:

- (IBAction) zoomSliderDidChange:(id)sender
{
    [addProductPhotoImageView setZoomFactor:[sender floatValue]];
}

نصائح أخرى

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

إحدى ميزات هذه الطريقة هي أنه يمكنك إضافة المزيد من الطرق للتكبير والتصغير ولن تصبح القيمة الموجودة في شريط التمرير قديمة.على سبيل المثال، إذا أضاف IKImageView ميزة التكبير/التصغير بالقرص (أو إذا كانت متوفرة بالفعل - ليس لدي خاصية اللمس المتعدد على جهاز Mac الخاص بي)، فيمكن للمستخدم التكبير/التصغير بهذه الطريقة وسيتم تحديث شريط التمرير تلقائيًا.لن يحدث ذلك مع IBAction حل.

مثال آخر هو أوامر قائمة التكبير والتصغير (ربما باستخدام اختصارات لوحة المفاتيح ⌘+ و⌘-) التي ترسل رسائل إجراءات إلى وحدة التحكم الخاصة بك.سوف تستجيب وحدة التحكم الخاصة بك عن طريق زيادة أو تقليل قيمة الخاصية (باستخدام طريقة الضبط التي تنفذها).باستخدام Bindings، سيتم تحديث كل من عرض الصورة وشريط التمرير مجانًا.بدون الروابط، سيتعين عليك التحدث بشكل صريح إلى كل من عرض الصورة وشريط التمرير، وإخبار أحدهما بتحديث عامل التكبير/التصغير الخاص به والآخر بتحديث شريط التمرير الخاص به.

والمثال الثالث سيكون "عامل التكبير:عرض "X%" في إحدى زوايا نافذتك.باستخدام Bindings، يمكن تحديث هذا مجانًا بغض النظر عن كيفية قيام المستخدم بتكبير الصورة:تحريك إبهام شريط التمرير، أو الضغط على الصورة أو إلغاء الضغط عليها، أو الضغط على عنصر القائمة.بدون الروابط، سيكون هذا شيئًا آخر يجب عليك التحدث إليه في أساليب إجراء تغيير قيمة التكبير/التصغير (ثلاثة على الأقل).

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