سؤال

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

1) رسم الصورة ثم الإطار حول أو 2) رسم مستقيم، وملء اللون مع اللون ثم رسم الصورة داخل هذا المستقيم ترك بعض بكسل الإزاحة لتقليد الإطار

هل يسحب الكوارتز كل ما يقال إليه أو هو الذكية بما يكفي لرسم فقط ما هو مرئي حقا؟ شعوري هو أن النهج الأول هو أفضل لأن هناك بالفعل أقل الرسم القيام به. هل هو حقا كذلك؟

شكرا.

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

المحلول

سوف يحدث رسم الكوارتز فقط داخل حدود الرأي، إذا كنت تفعل الرسم المخصص في -drawRect :.

ومع ذلك، أعتقد أنك سترى أفضل أداء إذا قمت ببساطة بإنشاء UiImageViews لكل صورة، فاستخدم borderWidth, borderColor, ، ومحتمل cornerRadius خصائص على طبقة عرض الخاص بك لتعيين حدود. علي سبيل المثال:

imageView.layer.cornerRadius = 10.0f;
imageView.layer.borderWidth = 3.0f;
imageView.layer.borderColor = [[UIColor blackColor] CGColor];

سيقوم بوضع حد أسود على مستوى 3 بكسل حول رأيك، ومنحه دائرة نصف قطرها 10 بكسل في الزوايا.

نصائح أخرى

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

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

ذلك يعتمد على رقاقة الرسومات.

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