iOS UIView 选择性倒角
有些APP中会有卡券,卡券做成了选择性倒角,例如左上,右上倒角。非常美观。看一下iOS的实现:
#import "Masonry.h"
@interface WJWDaojiaoViewController ()
@property (nonatomic, strong) UIView *myView;
@end
@implementation WJWDaojiaoViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"视图倒角";
[self configUI];
}
- (void)configUI {
[self.view addSubview:self.myView];
self.view.backgroundColor = [UIColor redColor];
// self.myView.backgroundColor = [UIColor redColor];
[self.myView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.view).offset(84 + 10);
make.left.equalTo(self.view);
make.right.equalTo(self.view);
make.height.mas_equalTo(100);
}];
}
- (void)viewDidLayoutSubviews {
CGRect oldRect = _myView.bounds;
oldRect.size.width = [UIScreen mainScreen].bounds.size.width;
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:oldRect byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(20, 20)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.path = maskPath.CGPath;
maskLayer.frame = oldRect;
_myView.layer.mask = maskLayer;
}
- (UIView *)myView {
if (!_myView) {
_myView = [[UIView alloc] init];
_myView.backgroundColor = [UIColor blueColor];
}
return _myView;
}
效果图:

需要注意的是,myView用masonry在configUI中布局,直接在布局后设置倒角是不行的。因为布局结束系统并不会立即更新控件的frame,frame是在-viewDidLayoutSubviews()方法执行后确定的,所以设置倒角在这里。
而且把布局方法放在 -viewDidLayoutSubviews() 中也是不行的。想想为什么。
iOS UIView 选择性倒角的更多相关文章
- IOS UIVIEW layer动画 总结(转)
转发自:http://www.aichengxu.com/article/%CF%B5%CD%B3%D3%C5%BB%AF/16306_12.html IOS UIVIEW layer动画 总结, ...
- IOS UIView圆角,阴影,边框,渐增光泽
圆角 sampleView.layer.cornerRadius = 2.5; // 圓角的弧度sampleView.layer.masksToBounds = YES; 阴影 sampleView. ...
- [转]IOS UIView 之属性篇
[转载自:IOS UIView 之属性篇 From CSDN] UIView 继承于UIResponder 所遵守的协议有 NSCoding .UIAppearance. UI ...
- IOS UIView 04- 自定义控件
注:本人是翻译过来,并且加上本人的一点见解. 前言 本文将讨论一些自定义视图.控件的诀窍和技巧.我们先概述一下 UIKit 向我们提供的控件,并介绍一些渲染技巧.随后我们会深入到视图和其所有者之间的通 ...
- IOS UIView 02- 深入理解 Scroll Views
注:本人是翻译过来,并且加上本人的一点见解. 前言 可能你很难相信 UIScrollView 和一个标准的 UIView 差异并不大,scroll view 确实会多出一些方法,但这些方法只是和 UI ...
- ios uiview封装动画(摘录)
iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...
- iOS - UIView
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIView : UIResponder <NSCoding, UIAppearance, UIAppeara ...
- IOS UIView子类UIScrollView
转自:http://www.cnblogs.com/nightwolf/p/3222597.html 虽然apple在IOS框架中提供了很多可以直接使用的UI控件,但是在实际开发当中我们通常都是要自己 ...
- iOS UIView 快速修改 frame,
在iOS开发布局修改 frame 时需要繁琐的代码实现,今天偶尔看到一播客说到快速修改的 frame 的方法,自己动手写了一遍实现代码. 快速实现主要通过 添加类目的方式,对UIView 控件添加了一 ...
随机推荐
- Angular7_人员登记系统
1.ts public peopleInfo: any = { username: 'kxy', sex: '男', cityList: ['汕头', '广州', '茂名'], city: '汕头', ...
- Oracle 关键字、高级函数的使用
1.序列.唯一标识 查询时,可以添加递增序列 rownum 表的数据每一行都有一个唯一的标识 rowid 2.函数 单行:查询多条数据 如:to_date() 多行:查询总结数据,一般用于group ...
- torch画散点图
import torch from torch.autograd import Variable import torch.nn.functional as F import matplotlib.p ...
- 近日测试发现所有Excel相关功能均会抛异常,查后发现与福昕阅读器不兼容
报这种错: System.Runtime.InteropServices.COMException (0x80010105): 服务器出现意外情况. (异常来自 HRESULT:0x80010105 ...
- mysql只删除表不删除库
1.备份数据库mysqldump -uroot -P13306 -h10.1.50.14 -p 库名 > /opt/20190109.sql2.删除所有表mysql -uroot -P13306 ...
- intellij idea创建maven项目
1.安装好JDK,Tomcat,安装好maven: 2.配置maven全局变量:file->Other Settings ->Default Settings->Build,Exec ...
- Python学习笔记七
面向对象编程 面向对象的特性如下: 类:具有相同属性和方法的一类事物,成为类. 对象:类的实例化后的结果,一个类可以实例化多个对象,每个对象也可以不同的属性. 封装:在类中对数据的赋值,类里面包含着类 ...
- PHP中的面向对象思想
<?php header("Content-Type: text/html; charset=gb2312"); class person{ /** * 成员属性 * 在类中 ...
- matplotlib基本用法-【老鱼学matplotlib】
本文介绍一下matplotlib的最基本用法. 这次我们要显示一个线性方程的直线. 首先要引入matplotlib库,一般是用plt这个简写的,我们就按照大多数人的惯例来进行命名: import ma ...
- 咸鱼入门到放弃9--jsp中使用的JavaBean
一.什么是JavaBean JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方法 ...