سؤال

لماذا مخصص UIButton صورة لا تغيير مع الزر ؟

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

أنا تبحث في المكان الخطأ أو غير ممكن ؟

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

المحلول

في حين أن هذا قد لا يكون بالضبط ما كنت بعد - صورة الخلفية لا مقياس.

نصائح أخرى

جرب هذا:

[button setImage:image forState:UIControlStateNormal];
button.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;

في "سويفت":

button.contentVerticalAlignment = .fill
button.contentHorizontalAlignment = .fill

وتذكر أن تعيين إعدادات محاذاة تحكم لزر

وأعرف أن هذا هو القديم، ولكن أعتقد أن الجواب الصحيح هو أنه يجب تعيين وضع المحتوى إلى UIImageView "الخفي" الذي هو داخل UIButton:

button.imageView.contentMode = UIViewContentModeScaleAspectFill;

وهذا من شأنه تغيير وضع محتوى آراء الصور من الصور مع مجموعة:

[button setImage:yourAwesomeImage forState:UIControlStateNormal]; 
//Or any other state

فقط تفعل (من تصميم أو رمز):

من تصميم

  1. فتح xib أو القصة المصورة.
  2. حدد زر
  3. داخل السمة المفتش (الجانب الأيمن) > في "السيطرة" القسم > حدد آخر 4 الخيار على حد سواء أفقي Verical.

[عن النقطة رقم 3:تغيير أفقي و عمودي محاذاة UIControlContentHorizontalAlignmentfill و UIControlContentVericalAlignmentfill]

من مدونة

زر.contentHorizontalAlignment = UIControlContentHorizontalAlignmentfill;زر.contentVerticalAlignment = UIControlContentVerticalAlignmentfill;

واجهة البناء

للحصول على الصور في UIButtons إلى الجدول بنفس الطريقة UIViews في واجهة باني اتبع الخطوات التالية:

حدد UIButton و من هوية المفتش إضافة التالية إلى المستخدم تحديد وقت التشغيل سمات:

imageView.contentMode رقم 1

حيث الرقم هو التعداد عدد من contentMode, على سبيل المثال:

0 = Scale to fill 
1 = Aspect Fit 
2 = Aspect Fill
etc..

ثم فتح سمات محرر الخاص بك UIButton وتحت التحكم تعيين المحاذاة لملء (آخر زر على اليمين) الأفقي والرأسي.

سويفت 3

ملاحظة يمكنك أيضا القيام بذلك في التعليمات البرمجية التالية:

button.imageView?.contentMode = .scaleAspectFit
button.contentVerticalAlignment = .fill
button.contentHorizontalAlignment = .fill

وحاول تعيين الخاصية كليب subviews في واجهة البناء إلى true.

وعلى أمل أن يساعد.

والحل الأمثل وجدت حتى الآن في سويفت 2.1 هو ما يلي:

self.imageButton.imageView?.clipsToBounds = true
self.imageButton.imageView?.contentMode = UIViewContentMode.ScaleAspectFit

وهذا سوف حجم الصورة لذلك لديه نوبة الجانب في imageView.

ومجرد الحصول على UIimageview الحقيقي ووضع UIbutton على أعلى من ذلك وعبر القائمة تخطيط تعيينها إلى الخلف. ثم يمكنك حجم الصورة بشكل صحيح.

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