给图片设置任意个圆角

  有时候,我们做cell的时候回遇到这种需求

  

  要求,tableview中每一组的第一个cell和最后一个cell显示两个圆角

  一听到圆角,估计很多人会想到下面两句代码,但是,做不到上面这种效果.

  layer.cornerRadius = 10;

  layer.masksToBounds = YES;

  其实最简单的办法可以让美工(UI设计师)做两张这种背景图片,然后设置cell的cell.backgroundView 就完成了,这是最快的办法,但是如果UI不给的话,只能是:一言不合就裁剪图片了.

  说到裁剪图片,想到的是CAShapeLayer,别问我为什么,因为它有一个属性是path,然后想到用UIBezierPath中的一个方法

+ (instancetype)bezierPathWithRoundedRect:(CGRect)rect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii;

这个方法中的UIRectCorner是一个枚举,有如下值:

  UIRectCornerTopLeft     = 1 << 0,

UIRectCornerTopRight    = 1 << 1,

UIRectCornerBottomLeft  = 1 << 2,

UIRectCornerBottomRight = 1 << 3,

UIRectCornerAllCorners  = ~0UL

  这下就简单多了,上代码:

  

  在storyboard中就放了一个UIImageview,随意设置了一张图片.

  

//
//  ViewController.m
//  设置圆角
//
//  Created by hqw on 16/4/20.
//  Copyright © 2016年 墨鸦. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:self.imageView.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(10, 10)];
    CAShapeLayer *layer = [CAShapeLayer layer];
    layer.frame = self.imageView.bounds;
    layer.path = path.CGPath;
    self.imageView.layer.mask = layer;
}

@end

  运行效果如下:

  

  有了这种图片cell的圆角需求也就解决了.

时间: 2025-01-04 06:42:05

给图片设置任意个圆角的相关文章

android中对Bitmap图片设置任意角为圆角

http://blog.csdn.net/l448288137/article/details/48276681 最近项目开发中使用到了圆角图片,网上找到的圆角图片控件大多比较死板,只可以全圆角.其中感觉最好的也就是半圆角 链接在这里.想了一下,我自己在这个的基础上进行了一点改进,使得图片可以设置任意角为圆角. 先上效果图: 核心代码 [java] view plain copy package fillet.sgn.com.filletimage; import android.graphic

Java 图片设置圆角(设置边框,旁白)

/** * 图片设置圆角 * @param srcImage * @param radius * @param border * @param padding * @return * @throws IOException */ public static BufferedImage setRadius(BufferedImage srcImage, int radius, int border, int padding) throws IOException{ int width = srcI

给图片设置圆角和圆形边框,添加点击事件

//1.创建图片 _userImage = [[UIImageView alloc]init]; //2.设置图片圆角 _userImage.layer.cornerRadius = 33; _userImage.layer.masksToBounds = YES; //3.设置圆形边框 CALayer *layer = [_userImage layer]; layer.borderColor = [[UIColor whiteColor] CGColor]; layer.borderWidt

Android中绘制圆角矩形图片及任意形状图片

圆角矩形图片在苹果的产品中很流行,相比于普通的矩形,很多人都喜欢圆角矩形的图片,因为它避开了直角的生硬,带来更好的用户体验,下面是几个设计的例子: 下面在Android中实现将普通的矩形图片绘制成圆角矩形.首先看最终效果: 代码清单: package com.example.phototest; import android.os.Bundle; import android.app.Activity; import android.graphics.Bitmap; import android

图片设置3D效果

/** * 图片绘制3d效果 * @param srcImage * @param radius * @param border * @param padding * @return * @throws IOException */ public static BufferedImage draw3D(BufferedImage srcImage, int radius, int border, int padding, Color bgColor) throws IOException{ in

将摄像头拍摄图像或者本地图片设置为头像的方法

一:效果图 效果描述:点击相框,将手机摄像头拍摄的图片或者本地图片设置为我们定义的头像 功能控件:UIImageView , UIAlertController , UITapGestureRecognizer , UIImagePickerController 首次运行的时候会提醒是否允许程序访问手机相册,点击ok     二:工程图 三:代码区 AppDelegate.h #import <UIKit/UIKit.h> @interface AppDelegate : UIResponde

iOS 图片文件格式判断、圆角图片

1.圆角图片 // 设置圆形图片(放到分类中使用) - (UIImage *)cutCircleImage { UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0); // 获取上下文 CGContextRef ctr = UIGraphicsGetCurrentContext(); // 设置圆形 CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);

iOS开发中的错误整理,启动图片设置了没有效果;单独创建xib需要注意的事项;图片取消系统渲染的快捷方式

一.启动图片设置了没有效果 解决方案:缓存啊!卸了程序重新安装吧!!!!! 二.单独创建xib需要注意的事项 三.图片取消系统渲染的快捷方式

设置Label的圆角效果

设置Label的圆角效果 // 设置Label为圆角 // 设置四周圆角的半径 lblMsg.layer.cornerRadius = 5; // 把多余的部分裁剪掉. lblMsg.layer.masksToBounds = YES;