zoukankan      html  css  js  c++  java
  • ios 图片切圆角

    图片切圆角,其实就是切layer,就是两句话。

    self.avatarButton.layer.cornerRadius = 15.0;
        self.avatarButton.layer.masksToBounds = YES;

    但是这里有一个问题,图片少的话还可以,但是如果一个tableview上有很多图片的话,滑动的时候这么切圆角就很耗cpu性能,就会出现卡顿,这里有个方法就是画上去。

    //头像
        UIButton *avatarButton = [UIButton buttonWithType:UIButtonTypeCustom];
        [avatarButton setImage:[[UIImage imageNamed:@"71r58PICmDM_1024.jpg"] circleImage] forState:UIControlStateNormal];
        [self.view addSubview:avatarButton];
        self.avatarButton = avatarButton;
    UIImage+JJImage.h
    
    #import <UIKit/UIKit.h>
    
    @interface UIImage (JJImage)
    
    - (UIImage *)circleImage;
    
    @end
    UIImage+JJImage.m
    
    #import "UIImage+JJImage.h"
    
    @implementation UIImage (JJImage)
    
    - (UIImage *)circleImage
    {
        
        // 开始图形上下文
        UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0);
        
        // 获得图形上下文
        CGContextRef ctx = UIGraphicsGetCurrentContext();
        
        // 设置一个范围
        CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
        
        // 根据一个rect创建一个椭圆
        CGContextAddEllipseInRect(ctx, rect);
        
        // 裁剪
        CGContextClip(ctx);
        
        // 将原照片画到图形上下文
        [self drawInRect:rect];
        
        // 从上下文上获取剪裁后的照片
        UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
        
        // 关闭上下文
        UIGraphicsEndImageContext();
        
        return newImage;
    }
    
    @end

    PS: 

    作者:刀客传奇
    链接:https://www.jianshu.com/p/27aee16d0857
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 相关阅读:
    笛卡尔积
    Oracle语句以及各种知识点
    vue和angular的区别:
    vue的生命周期的理解
    使用递归实现一个数组的快速排序
    对css盒模型的理解
    对 超链接 的理解
    HTML语义化的理解
    HTML 、XHTML、H5的区别:
    mysql的使用相关问题
  • 原文地址:https://www.cnblogs.com/qiyiyifan/p/10077812.html
Copyright © 2011-2022 走看看