谈iOS实现圆角

作者: Cyrill | 来源:发表于2016-08-18 13:21 被阅读58次

一.正常圆角的实现

在做项目过程中,我们总会遇到实现圆角的情况

1.通过layer来实现

- (UIImageView *)testImageView
{
    if (_testImageView) {
        _testImageView = [[UIImageView alloc] init];
        _testImageView.layer.cornerRadius = 5.0; // 圆角
        _testImageView.layer.masksToBounds = YES; // 切掉多余的地方
    }
    return _testImageView;
}

2.通过GPU来做

//
//  UIImage+GetCornerRadius.m
//  GetCornerRadius
//
//  Created by Cyrill on 16/8/18.
//  Copyright © 2016年 Cyrill. All rights reserved.
//

#import "UIImage+GetCornerRadius.h"

@implementation UIImage (GetCornerRadius)

//圆角切割
- (UIImage *)cy_getCornerRadius:(CGFloat)cornerRadius
{
    CGFloat scale = [UIScreen mainScreen].scale;
    
    UIGraphicsBeginImageContextWithOptions(self.size, NO, scale);
    CGContextRef c = UIGraphicsGetCurrentContext();
    CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
    
    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
    CGContextAddPath(c, path.CGPath);
    CGContextClip(c);
    
    [self drawInRect:rect];
    
    CGContextDrawPath(c, kCGPathFillStroke);
    
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return image;
}

@end

这样会返回一个已经切割好的图片。好处是用GPU来处理圆角效果,一些情况下会提升app的性能。

相关文章

  • 谈iOS实现圆角

    一.正常圆角的实现 在做项目过程中,我们总会遇到实现圆角的情况 1.通过layer来实现 2.通过GPU来做 这样...

  • iOS设置圆角之:离屏渲染的问题和解决

    iOS中实现UIView及其子类的圆角效果有2中方法 检测开启离屏渲染 实现圆角两部曲 设置圆角就一定会触发离屏渲...

  • 关于corner 性能问题

    在ios 中绘制圆角常用方式: 即可实现圆角; 如果需要只设置上边角或者下边角1个或者几个圆角,也可通过下面的方式...

  • new learning----- Cut All Corner

    最近接触了个新项目,写了几个new界面。关于控件切圆角设置的,有几点想法想谈下。。。。 iOS切圆角的方式 本篇只...

  • iOS 绘制圆角

    级别: ★☆☆☆☆标签:「iOS切圆角」「layer圆角」「CAShapeLayer圆角」作者: Xs·H审校: ...

  • 圆角和边框

    圆角 圆角代码实现: 圆角User Defined Runtime Attributes实现: layer.cor...

  • 图片处理

    iOS中图片的加载、圆角、阴影实现方式多种多样,我们需着重考虑性能问题 视图阴影 圆角图片 注意:这种方法能够避免...

  • iOS高效添加圆角效果实战讲解

    iOS高效添加圆角效果实战讲解 iOS高效添加圆角效果实战讲解

  • iOS 常用组件-高效切圆角方法总结

    iOS 常用组件-高效切圆角方法总结 iOS 常用组件-高效切圆角方法总结

  • iOS UIView的圆角加阴影效果的实现

    iOS UIView的圆角加阴影效果的实现 我们都知道削圆角一般有两种方式,一种是直接用layer.cornerR...

网友评论

    本文标题:谈iOS实现圆角

    本文链接:https://www.haomeiwen.com/subject/vnevsttx.html