سؤال

يحتوي Android على طريقة لطيفة لتحديد صور مطاط تسمى تسعة التصحيح. يرى هذه المستندات للحصول على وصف للمفهوم. تتمثل الفكرة في تحيط صورة PNG مع حدود 1 بكسل حيث يمكنك تحديد المناطق المطاط وأبعاد الحشو للصورة. هذا رائع للغاية وأرغب في استخدام الفكرة في تطبيق iPhone الخاص بي. قبل كتابة بلدي تسعة التصحيح إلى محمل Uiimage، اعتقدت أنني سأرى إذا كان أحد موجود بالفعل. لا ترجع Google أي نتائج لذلك ليس لدي الكثير من الأمل، لكنها لا تؤذي أن تسأل، أليس كذلك؟ :-)

تعديل: الناس، وأنا أقدر الإجابات ولكني أعرف stretchableImageWithLeftCapWidth.... وبعد أنا أبحث عن رمز يأخذ المسار @"foo.9.png" وإرجاع مطاطي UIImage. وبعد هذا الرمز سوف يستخدم بلا شك stretchableImageWithLeftCapWidth... داخليا. أنا متأكد من أنني أستطيع كتابة الرمز بنفسي باستخدام هذه الطريقة. لكنني أسأل عما إذا كان شخص آخر قد فعل ذلك بالفعل.

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

المحلول

تلقيت بريدا إلكترونيا من برنامج Tortuga22 أبلغني أنهم قاموا بإنشاء مثل هذه المكتبة وأصدروه بموجب ترخيص Apache:

إعلان: http://blog.tortuga22.com.

مصدر الرمز: http://github.com/tortuga22/tortuga22-ninepatch.

مثال على الاستخدام:

// loads-and-caches ninepatch and rendered image of requested size
UIImage buttonImg = [TUNinePatchCache imageOfSize:buttonSize 
                                forNinePatchNamed:@"buttonNormalBackground"];
[self.buttonNeedingBackground setImage:buttonImg
                       forControlState:UIControlStateNormal];

نصائح أخرى

انظر أيضا إلى خاصية Uiview's Contentstrech. إنه أكثر قوة وتصرف جيدا من المطاطأيماجويثفاتكابوائد. في الأساس، يعمل من خلال تحديد المستطيل المطاطي داخل صورتك وإنشاء تصحيح تسعة تحجيم تلقائيا. يمكن أن يكون هذا المستطيل الداخلي أي شيء - لا يجب أن يكون حتى في وسط الصورة. بالإضافة إلى ذلك، فإن هذه الطريقة ستقلص بشكل صحيح الرسومات وتتصرف كما هو متوقع للرسومات مع الإضاءة أو اللمعان. لا أستطيع التفكير في أي تطبيق في العالم الحقيقي حيث تريد أكثر من هذا.

نعم UIImage هل يدعم شيئا مثل ذلك. يرى

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight والوثائق لليساركابويدث وتوسع

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

الجميع UIImage الصور تدعم هذا أصلا. افتراضيا، تكون الصور بأكملها موجودة، ولكن يمكنك ضبط قبعات مع leftCapWidth و topCapHeight خصائص أو يمكنك توليد واحدة من القائمة UIImage مع ال - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight طريقة.

لا نلاحظ أنه في تطبيق Apple، عند تعيين واحد أو كلا من هذه القيم، يتم إجبار منطقة المطال على أن تكون مرتفعة / واسعة بكسل واحدة.

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