سؤال

أنا في عملية إضافة الأزرار المخصصة على اي فون بلدي واجهة المستخدم و تريد أن تجعل لهم زجاجي نظرة من تطبيقات أبل.لدي جيدة الافتراضي الزجاج الصورة ، ولكن أكره أن يكون لديك صورة منفصلة لكل لون أريد (أحمر, أخضر, أزرق, etc.).

هل هناك طريقة لتحميل الرمادي PNG وضبط اللون أريد ؟ الأفضل من ذلك, هل هناك طريقة للحصول على أبل زجاجي تبدو من دون الحاجة إلى تحميل الصور المخصصة في كل شيء ؟

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

المحلول

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

نصائح أخرى

في وقت متأخر قليلا ، ولكن في حال وجود شخص مثلي يبحث عن هذا النوع من المعلومات:استخدام UISegmentedControl مع زر واحد ، تعيينه momentary, و تعيين tintColor.هذه الطريقة لا تحتاج إلى إعداد العديد من PNGs لديك والألوان إطار تأخذ الرعاية من جميع يرجع لك.

على سبيل المثال:

UISegmentedControl *cancelButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Cancel"]];
[cancelButton setSegmentedControlStyle:UISegmentedControlStyleBar];
[cancelButton setTintColor:[UIColor colorWithRed:0.8 green:0.3 blue:0.3 alpha:1.0]];
[cancelButton setMomentary:YES];
[cancelButton addTarget:self action:@selector(didTapCancel:) forControlEvents:UIControlEventValueChanged];
[self addSubview:cancelButton];
[cancelButton release];

هناك عينة في دائما ممتازة "الكاكاو مع الحب" الموقع: الرسم معان التدرجات في CoreGraphic

أنا لا أعرف عن اي فون واجهة المستخدم, ولكن يمكنك استخدام واحدة PNG إلى اللون البديل الرسومات.

أيكل الشعارات (أعلى اليسار) على هذه الصفحات:

المنتجات

المحلات التجارية

استخدام هذا PNG

النص البديل http://47degrees.com/images/logos/47_degrees.png

أفترض أنك قد تحتاج لون الخلفية مثل لون أن يكون زجاجي.

لقد فعلت هذا و أنه يعمل بشكل جيد جدا:

دائرة الرقابة الداخلية:تطبيق RGB مرشح إلى اللون الرمادي PNG

ومع ذلك ، فمن الغش هو إضافة لذلك (على سبيل المثال) الأحمر المكون من كل بكسل ، R_dest = R_src + R_tint

إذا كنت تريد السيطرة غرامة الحبيبات على سبيل المثال قد ترغب في استخراج قيمة اللون الرمادي لكل بكسل بمعدل RGB المكونات (مع المناسبة الترجيح) ، ومن ثم ضرب هذه القيمة الخاصة بك لون ، وبالتالي فإن اللون الناتج يكون اللون الرمادي(Sr,Sg,Sb) * {Tr,Tg,Tb}

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

مشكلة إعادة تشكيل UIImage من RGBA بكسل بايت البيانات

هذه المكتبة قد فعلت كل شيء بالنسبة لك, ليس الطريق الأكثر كفاءة ، ولكن فإنه يحصل على هذه المهمة.iirc انه يستخدم malloc عندما يجب استخدام calloc.

انتهى خلق بلدي زر مخصص تطابقا مع التقديم المستخدمة في "حذف الاتصال" زر في الاتصالات تحرير عرض.

للراغبين, ويمكن الاطلاع على جيثب في

PFTintedButton

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