設(shè)置imageView圓角加陰影效果

在UIImageView分類里添加方法

@implementation UIImageView (custom)

//設(shè)置圓角
- (void)setImageCornerRadius: (CGFloat)radius {
    self.layer.cornerRadius = radius;
// ios9之后對imageview設(shè)置不會觸發(fā)離屏渲染
    self.layer.masksToBounds = YES;
}

//設(shè)置陰影
- (void)setShadowWithColor:(UIColor *)color shadowXOffset:(CGFloat)xOffset 
              shadowYOffset:(CGFloat)yOffset
              shadowRadius:(CGFloat)radius
              shadowOpacity:(CGFloat)opacity{

    if (self.superview == nil) {
        NSLog(@"WRNING: a parent view of the image view is necessary to add a shadow view.");
        return;
    }

  //shadowContainer  為在imageview的父view中加的 設(shè)置陰影的view
    if (self.shadowContainer != nil) {
        [self.shadowContainer removeFromSuperview];
    }
    self.shadowContainer = [[UIView alloc] initWithFrame: self.frame];
    self.shadowContainer.userInteractionEnabled = NO;
    self.shadowContainer.backgroundColor = [UIColor whiteColor];
    self.shadowContainer.layer.shadowColor = color.CGColor;
    self.shadowContainer.layer.shadowOffset = CGSizeMake(xOffset, yOffset);
    self.shadowContainer.layer.shadowRadius = radius;
    self.shadowContainer.layer.shadowOpacity = opacity;
    self.shadowContainer.layer.cornerRadius = self.layer.cornerRadius;
  //必加該句  直接向Core Animation提供陰影形狀,通過調(diào)用setShadowPath來提供一個CGPath給視圖的Layer,(CGPath為任意你想生成的陰影的形狀),可以防止離屏渲染
    self.shadowContainer.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:radius].CGPath;
    self.shadowContainer.clipsToBounds = NO;
    [self.superview insertSubview:self.shadowContainer atIndex:0];
}
@end

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,665評論 1 32
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復(fù)雜,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,270評論 5 13
  • 1.設(shè)計模式是什么? 你知道哪些設(shè)計模式,并簡要敘述?設(shè)計模式是一種編碼經(jīng)驗,就是用比較成熟的邏輯去處理某一種類型...
    龍飝閱讀 2,302評論 0 12
  • 查閱了好些關(guān)于圓角性能優(yōu)化的帖子,總結(jié)下記錄下來.首先:DSImageViewRound 使用方法iOS圖片高性能...
    路漫漫其修遠(yuǎn)兮Wzt閱讀 1,119評論 0 2
  • 早起,對于年輕人來說是比較困難的事,能做到堅持早起,成為朋友圈里點(diǎn)贊的對象,以至于現(xiàn)在很多早起的打卡軟件,打卡社群...
    太原小明閱讀 523評論 1 14

友情鏈接更多精彩內(nèi)容