ios开发 UIView(UIImageView)添加六边形的遮罩

float viewWidth = 80;

UIBezierPath * path = [UIBezierPath bezierPath];

path.lineWidth = 2;

[[UIColor whiteColor] setStroke];

[path moveToPoint:CGPointMake((sin(M_1_PI / 180 * 60)) * (viewWidth / 2), (viewWidth / 4))];

[path addLineToPoint:CGPointMake((viewWidth / 2), 0)];

[path addLineToPoint:CGPointMake(viewWidth - ((sin(M_1_PI / 180 * 60)) * (viewWidth / 2)), (viewWidth / 4))];

[path addLineToPoint:CGPointMake(viewWidth - ((sin(M_1_PI / 180 * 60)) * (viewWidth / 2)), (viewWidth / 2) + (viewWidth / 4))];

[path addLineToPoint:CGPointMake((viewWidth / 2), viewWidth)];

[path addLineToPoint:CGPointMake((sin(M_1_PI / 180 * 60)) * (viewWidth / 2), (viewWidth / 2) + (viewWidth / 4))];

[path closePath];

CAShapeLayer * shapLayer = [CAShapeLayer layer];

shapLayer.lineWidth = 2;

shapLayer.strokeColor = [UIColor whiteColor].CGColor;

shapLayer.path = path.CGPath;

_headerImageView.layer.mask = shapLayer;

同理其他多边形也可以实现。

圆形的:_headerImageView.layer.cornerRadius = viewWidth / 2;

_headerImageView.clipsToBounds = true;
也可以设置线的宽度和颜色。

时间: 2024-11-02 18:20:41

ios开发 UIView(UIImageView)添加六边形的遮罩的相关文章

IOS开发: 为UIImageView添加点击事件

转载于:http://www.pocketdigi.com/20140218/1276.html UIImageView并不像UIButton一样,点点鼠标就可以关联点击事件,也不像Android里有onClickListener,这里需要借助于UITapGestureRecognizer类.从类名上就可以看出,这个类就是用于处理tap(单击)事件的.bbc和voaspecial是UIImageView对象 [bbc setUserInteractionEnabled:YES]; [voaspe

IOS开发 UIView控件

1.万物皆对象 2.LBS:基于位置的服务(热门) 3.在启动XCODE创建项目的时候最好勾选 git 4.在SB界面中更改UILabel 之类的控件里面的内容,控件的frame会随着内容的大小而改变,但是在右侧的属性栏里面更改则不会影响frame 5.IBAction:SB界面原来叫Interface Builder 缩写为IB, 6.M_PI_4  代表45°  以此类推 // OC语法规定:不允许直接修改 某个对象中结构体属性的成员 ? 1 2 3 4 5 6 7 8 // 1.先取出fr

iOS开发项目—04添加导航栏的按钮

iOS开发项目—04添加导航栏的按钮 一.设置导航栏的按钮 要求实现的效果:             说明:默认状态下和高亮状态下的图片是不一样的. 按钮的图片需要设置默认状态和高亮状态时的显示,系统了提供的下面方法 viewController.navigationItem.leftBarButtonItem=[UIBarButtonItem alloc]initWithImage:<#(UIImage *)#> style:<#(UIBarButtonItemStyle)#>

iOS开发:UIImageView常用操作

UIImageView,顾名思义,是用来放置图片的.使用Interface Builder设计界面时,当然可以直接将控件拖进去并设置相关属性,这就不说了,这里讲的是用代码. 1.创建一个UIImageView: 创建一个UIImageView对象有五种方法: UIImageView *imageView1 = [[UIImageView alloc] init]; UIImageView *imageView2 = [[UIImageView alloc] initWithFrame:(CGRe

iOS开发项目-02添加子控制器以及项目分层

iOS开发项目-02添加子控制器以及项目分层 一.添加子控制器 1.设置根控制器(自定义) 说明:分析新浪微博应用,观察其整体建构层次.而系统的控制器不能满足项目开发的需求,这里把项目中原有的控制器删除. 自己定义一个TabBarViewController类.让这个类作为window窗口的根控制器. YYAppDelegate.m文件代码: 1 #import "YYAppDelegate.h" 2 #import "YYTabBarViewController.h&quo

转:ios开发--给应用添加新的字体的方法

1.网上搜索字体文件(后缀名为.ttf,或.odf) 2.把字体库导入到工程的resouce中 3.在程序添加以下代码 输出所有字体 NSArray *familyNames = [UIFont familyNames];      for( NSString *familyName in familyNames ){          printf( "Family: %s \n", [familyName UTF8String] );          NSArray *fontN

【iOS开发问题】添加UIImageView不显示的问题

今天用下面这个方法添加UIImageView但是运行却不显示 @interface ViewController () @property(nonatomic, weak)UIImageView *imageView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UIImageView *imageV = [[UIImageView alloc] init]; imageV.fram

iOS开发——UIView与CALayer详解

UIView与CALayer详解 研究Core Animation已经有段时间了,关于Core Animation,网上没什么好的介绍.苹果网站上有篇专门的总结性介绍,但是似乎原理性的东西不多,看得人云山雾罩,感觉,写那篇东西的人,其实是假 设读的人了解界面动画技术的原理的.今天有点别的事情要使用Linux,忘掉了ssh的密码,没办法重新设ssh,结果怎么也想不起来怎么设ssh远程登 陆了,没办法又到网上查了一遍,太浪费时间了,痛感忘记记笔记是多么可怕的事情.鉴于Core Animation的内

iOS开发UIView动画的使用方法

一.使用UIView类实现动画 基本写法,代码必须放在Begin和Commit之间: [UIView beginAnimations:nil context:nil]; // 开始动画 // Code... [UIView commitAnimations]; // 提交动画 简单例子: [UIView beginAnimations:nil context:nil]; // 开始动画 [UIView setAnimationDuration:10.0]; // 动画时长 /** * 图像向下移