سؤال

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

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

المحلول

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

إذا كان لديك UIIMAGEVIEVVEY كإعطاء إيبوتلت لملف NIB، فيمكنك فقط تطبيق مستيقظا

ج موضوعية

- (void)awakeFromNib {
    imageView.layer.shadowColor = [UIColor purpleColor].CGColor;
    imageView.layer.shadowOffset = CGSizeMake(0, 1);
    imageView.layer.shadowOpacity = 1;
    imageView.layer.shadowRadius = 1.0;
    imageView.clipsToBounds = NO;
}

لا تنسى #import "QuartzCore/CALayer.h"


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

سويفت 3.

override func awakeFromNib() {
    super.awakeFromNib()

    imageView.layer.shadowColor = UIColor.purple.cgColor
    imageView.layer.shadowOffset = CGSize(width: 0, height: 1)
    imageView.layer.shadowOpacity = 1
    imageView.layer.shadowRadius = 1.0
    imageView.clipsToBounds = false
}

نصائح أخرى

أبسط شيء يجب القيام به هو إضافة طبقة الظل إلى عرض صورتك:

CALayer             *layer = [CALayer layer];
CGRect              bounds = self.bounds;

layer.bounds = bounds;
layer.position = CGPointMake(bounds.size.width / 2 + 3, bounds.size.height / 2 + 3);
layer.backgroundColor = [UIColor colorWithWhite: 0.25 alpha: 0.55].CGColor;
layer.zPosition = -5;

[self.layer addSublayer: layer];

تأكد من إيقاف تشغيل "مقطع المجموعات الفرعية" لعرض

محلول سويفت مع التمديد. الفئة الفرعية غير مطلوبة. يتصل myImage.addShadow() من عند viewDidLoad(). وبعد هذا يجب أن يعمل من أجل UIView و UIImageView.

extension UIView {

    func addShadow() {
        layer.shadowColor = UIColor.black.cgColor
        layer.shadowOffset = CGSize(width: 0, height: 0)
        layer.shadowOpacity = 0.5
        layer.shadowRadius = 5
        clipsToBounds = false
    }
}

بالإضافة إلى ذلك، إذا كنت ترغب في جعل الحدود البيضاء والظل، فيمكنك استخدام هذا الرمز:

//shadow part
imageView.layer.shadowColor = [UIColor blackColor].CGColor;
imageView.layer.shadowOffset = CGSizeMake(0, 1);
imageView.layer.shadowOpacity = 1;
imageView.layer.shadowRadius = 1.0;
//white border part
[imageView.layer setBorderColor: [[UIColor whiteColor] CGColor]];
[imageView.layer setBorderWidth: 2.0];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top