首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用iPhone SDK清除圆角矩形外的角落?

这个问题的答案需要涉及iOS开发、Swift编程语言、UIKit框架等方面。

首先,需要了解如何使用UIKit创建圆角矩形,可以使用UIBezierPath类来实现。可以使用以下代码创建一个圆角矩形:

代码语言:swift
复制
let maskPath = UIBezierPath(roundedRect: self.bounds, 
                            byRoundingCorners: [.allCorners], 
                            cornerRadii: CGSize(width: 5.0, height: 5.0))

然后,可以使用以下代码将圆角矩形添加到自定义视图上:

代码语言:swift
复制
self.layer.mask = maskPath.cgPath

接下来,需要使用Core Graphics框架来清除圆角矩形外的角落。可以使用以下代码:

代码语言:swift
复制
let bounds = CGRect(x: 0, y: 0, width: 100, height: 100)
let path = UIBezierPath(rect: bounds)
path.append(UIBezierPath(rect: CGRect(x: bounds.midX - 5, y: bounds.midY - 5, width: 10, height: 10)))
path.append(UIBezierPath(rect: CGRect(x: bounds.midX + 5, y: bounds.midY + 5, width: 10, height: 10)))

let shape = UIBezierPath(rect: bounds)

let cgPath = CGContext.createPath(using: path)
CGContext.setFillColor(cgPath!, with: CGColor(red: 1.0, green: 0.0, blue: 0.0, alpha: 0.5))
CGContext.fill(bounds)

最后,可以将上述代码整合起来,创建一个自定义视图,将圆角矩形添加到该视图上,并清除圆角矩形外的角落。代码如下:

代码语言:swift
复制
class RoundedView: UIView {
    override func draw(_ rect: CGRect) {
        let maskPath = UIBezierPath(roundedRect: rect, 
                                    byRoundingCorners: .allCorners, 
                                    cornerRadii: CGSize(width: 5.0, height: 5.0))
        
        self.layer.mask = maskPath.cgPath
        
        let bounds = CGRect(x: 0, y: 0, width: 100, height: 100)
        let path = UIBezierPath(rect: bounds)
        path.append(UIBezierPath(rect: CGRect(x: bounds.midX - 5, y: bounds.midY - 5, width: 10, height: 10)))
        path.append(UIBezierPath(rect: CGRect(x: bounds.midX + 5, y: bounds.midY + 5, width: 10, height: 10)))

        let shape = UIBezierPath(rect: bounds)

        let cgPath = CGContext.createPath(using: path)
        CGContext.setFillColor(cgPath!, with: CGColor(red: 1.0, green: 0.0, blue: 0.0, alpha: 0.5))
        CGContext.fill(bounds)
    }
}

以上代码创建了一个自定义视图,该视图能够绘制一个圆角矩形,并在圆角矩形外的角落处清除填充色。可以将该视图添加到需要绘制圆角矩形的位置上,即可看到效果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

AI中文版下载,Illustrator(Ai)各版本软件下载及安装教程ai干货

修改矩形尺寸:使用选择工具 (V) 选择矩形,然后拖动边缘或角度处理器即可调整矩形大小。 修改矩形圆角使用直接选择工具 (A) 选择矩形,然后拖动角度处理器即可修改圆角。...创建圆角矩形:选择矩形工具,然后按住鼠标左键并拖动以绘制一个矩形。在绘制时,按住鼠标左键并同时按住 Alt 键,然后拖动鼠标即可创建带有圆角矩形圆角半径可以通过更改圆角矩形属性进行调整。...绘制杯子底部和侧面:在绘制完杯子轮廓线后,使用矩形工具(Rectangle Tool)绘制杯子底部矩形形状,然后使用圆角效果”(Effect > Stylize > Round Corners)...将矩形四个角落变成圆形,形成杯子底部。...,那么就来看一下小编带来以下文章,学习一下如何关闭东亚文字显示技巧吧!

3K20

【CSS】盒子模型圆角边框 ( 通过设置 border-radius 样式设置圆角矩形圆角半径 )

, 使用圆角边框 ; 圆角按钮 : 下图中 头像 以及 下面的两个 按钮 , 都是圆角边框 ; 二、代码示例 ---- 1、代码示例 - 正常矩形边框 默认情况下边框 , 是 矩形边框...> /* 清除标签默认内外边距 */ * { padding: 0; margin: 0; } /* 正常矩形样式 */ .div1 {...> /* 清除标签默认内外边距 */ * { padding: 0; margin: 0; } /* 圆角矩形样式 */ div { width...= 宽度 , 并且 圆角矩形 圆角半径 为 高度 一半 , 则该圆角矩形 表现就是一个正常圆角矩形 , 左右两侧是圆角 ; 代码示例 : /* 清除标签默认内外边距 */ * { padding: 0; margin: 0; } /* 圆角矩形样式 */ div { width

2.2K20

【最新】iPhone X 交互设计官方指南

iPhone X iPhone X 拥有一个宽大而且高分辨率屏幕,从外观看是圆角,并且扩展到屏幕边缘。这提供了前所未有的沉浸式体验,可以使我们体验更加丰富内容。 ?...布局 在对 iPhone X 中应用进行设计时,你必须确保布局能够填满屏幕,并且保证他们不会被设备圆角、传感器外壳或者用于访问主屏幕指示灯遮盖。 ?...一般来说,内容应该是居中对称,所以它在任何方向看起来都很不错,不会被角落或设备传感器外壳裁剪掉,或者被主屏幕指示器遮挡。...避免将交互式控件放置在屏幕最底部和角落里。人们可以使用显示屏底部滑动手势来访问主屏幕和对应用程序进行切换,这些手势可能会覆盖掉你在此区域中设定自定义手势。另外屏幕两个角落令人很难进行有效操作。...不要隐藏设备圆角和传感器外壳,也不要通过在屏幕顶部和底部放置黑色条方式来突出主屏幕指示器。不要使用类似括号、边框、形状或文字之类视觉装饰来引起人们对这些区域注意。

1.9K20

Qt编写自定义控件42-开关按钮

为了能够涵盖两大类开关按钮,特意将常见四种类型(圆角矩形/内圆形/圆形/图片)都集成到了自定义开关按钮中。...二、实现功能 1:可设置开关按钮样式 圆角矩形/内圆形/圆形 2:可设置选中和未选中时背景颜色 3:可设置选中和未选中时滑块颜色 4:可设置显示文本 5:可设置滑块离背景间隔 6:可设置圆角角度...圆角矩形/内圆形/圆形 * 2:可设置选中和未选中时背景颜色 * 3:可设置选中和未选中时滑块颜色 * 4:可设置显示文本 * 5:可设置滑块离背景间隔 * 6:可设置圆角角度...每个控件都有一个对应单独包含该控件源码DEMO,方便参考使用。同时还提供一个所有控件使用集成DEMO。 每个控件源代码都有详细中文注释,都按照统一设计规范编写,方便学习自定义控件编写。...七、SDK下载 SDK下载链接:https://pan.baidu.com/s/1A5Gd77kExm8Co5ckT51vvQ 提取码:877p 下载链接中包含了各个版本动态库文件,所有控件头文件,

2.2K10

Android应用图标微技巧,8.0系统中应用图标的适配

乔布斯愤怒地拉着他走了3条街,指出大街上各种应用圆角矩形例子,最后那位工程师第二天就做出了绘制圆角矩形功能。...因此,在2007年一代iPhone诞生时候,所有应用程序图标都毫不出乎意料地使用圆角矩形图标,即使是第三方应用也被强制要求使用圆角矩形图标,并且这一规则一直延续到了今天iOS 11当中,如下图所示...因为谁都可以看出来,这种自动添加圆角矩形非常丑,因此很多公司就索性直接将应用图标都设计成圆角矩形,正好Android和iOS都用同一套图标还省事了。...SDK有些老了,最好还是更新一下。...在预览区域中给出了可能生成图标形状,包括圆形、圆角矩形、方形等等。

1.7K20

Android知识总结——Path常用方法解析 - 简书

, float rx, float ry, Direction dir) 添加统一圆角圆角矩形,rect:矩形区域,rx:椭圆圆角横轴半径,ry:椭圆圆角纵轴半径,dir:线闭合方向(CW顺时针方向...,left、top、right、bottom组成矩形区域,rx:椭圆圆角横轴半径,ry:椭圆圆角纵轴半径,dir:线闭合方向(CW顺时针方向 | CCW逆时针方向) addRoundRect(RectF...rect, float[] radii, Direction dir) 添加非统一圆角圆角矩形,rect:矩形区域,radii:矩形四个椭圆圆角横轴半径和纵轴半径数组,一共8个数值,dir:线闭合方向...5.addRoundRect(RectF rect, float rx, float ry, Direction dir) 添加一个区域为rect圆角矩形,四个角圆角大小一致,圆角横轴半径为rx,...addRoundRect(RectF rect, float[] radii, Direction dir) 添加一个区域为rect圆角矩形,四个角圆角横轴和纵轴半径由radii数组中8个数值决定

1.9K30

iPhone X 适配指南 (官方翻译版)

布局 在设计iPhone X时,您必须确保布局填满屏幕,并且不会被设备圆角,传感器外壳或用于访问主屏幕指示灯遮蔽。...一般来说,内容应该是居中对称,所以它在任何方向看起来都很棒,不会被角落或设备传感器外壳夹住,或被访问主屏幕指示器遮挡。为获得最佳效果,请使用标准系统提供界面元素和自动布局构建您界面。...同样,全屏iPhone X图稿在显示时被裁剪或被柱状显示全屏显示在4.7 寸iPhone上,确保重要视觉内容保持在两种显示尺寸上。 避免将交互式控件明确放置在屏幕底部和角落。...人们使用显示屏底部滑动手势访问主屏幕和应用程序切换器,这些手势可能会取消您在此区域中实现自定义手势。屏幕两个角落可能是困难地方让人们舒适地到达。 不要掩盖或特别注意关键显示功能。...请勿尝试隐藏设备圆角,传感器外壳或通过在屏幕顶部和底部放置黑色条来访问主屏幕指示器。不要使用像括号,边框,形状或教学文字等视觉装饰,也要特别注意这些区域。 允许自动隐藏指示灯,以便轻松访问主屏幕。

2.4K50

盒子模型(CSS重点)

其实,CSS就三个大模块: 盒子模型 、 浮动 、 定位,其余都是细节。要求这三部分,无论如何也要学非常精通。...所谓盒子模型就是把HTML页面中元素看作是一个矩形盒子,也就是一个盛装内容容器。每个矩形都由元素内容、内边距(padding)、边框(border)和外边距(margin)组成。...因此,每个盒子除了有自己大小和位置,还影响着其他盒子大小和位置。...为了更方便地控制网页中元素,制作网页时,可使用如下代码清除元素默认内外边距: * {   padding:0;         /* 清除内边距 */   margin:0;          .../* 清除外边距 */ } 注意: 行内元素是只有左右外边距,是没有上下外边距

1.6K10

canvas学习总结六:绘制矩形

CanvasAPI提供了如下三个方法,分别用于矩形清除,描边与填充 clearRect(x, y, w, h): 清除指定区域,使其为全透明 strokeRect(x, y, w, h): 绘制一个描边矩形...rect()绘制矩形 rect(x, y, w, h):绘制一个封闭矩形路径 参数x, y 分别为矩形左上角坐标,w, h 分别为矩形宽高 function drawRect(){   ctx.beginPath...clearRect(x, y, w, h): 清除指定区域内所有像素 参数x, y 分别为矩形左上角坐标,w, h 分别为矩形宽高 清除画布方法 ctx.clearRect(0, 0, canvas.width..., canvas.height); 绘制圆角矩形 在第五章中(canvas学习总结五:线段端点与连接点)我们介绍了lineJoin属性 用来设置线连接点样式,因此我们可以绘制圆角矩形 function...当然我们还可以使用lineJoin其他属性值绘制不同方式矩形。我们可以自己测试一下。

56710

超级实用:小而精,优而美的开源库,开年第一篇有意思分享

介绍: 目前几乎所有 app 都包含了第三方登录以及分享功能,之前大多都使用 ShareSDK 或者其他 SDK 来实现,但是有些情况不希望通过第三方 sdk 来间接集成,所以这个组件就有了用武之地...这个组件在 demo 中是没有包含相关调用代码只有一些配置和使用东西,因为应用申请实在麻烦,但是已经在项目中测试通过了,所以可以放心使用。...来,一起看看这个库特性: 支持拖动,提供自动贴边等动画。 内部自动进行权限申请操作。 可自由指定要显示悬浮窗界面。 应用退到后台时,悬浮窗会自动隐藏。 除小米,4.4~7.0 无需权限申请。...我想想该如何给大家讲明白。应该是它封装了很多常用 Shape ,什么形状和样式都有,它都封装好了,你拿过来就可以用。 ? 我给大家举个简单例子,如下图: ?...直接用圆角矩形 Shape ,然后设置圆角度数大小为10,设置整个圆角矩形颜色。 ? 然后又设置了它宽度和高度,这条线就画出来了。最后加入了 ShapeAnimator 动画,效果就出来了。

77860

Android实现仿iOS图标下载View动画效果

其实实现方式可能不止我想这种,我就讲述一下我是如何处理。 [1240] 预览图 首先,可以分成三部分: 半透明背景 全透明环 实心全透明弧 那怎么实现背景半透明,而圆环和弧又是全透明。...setXfermode() 用于设置图像过度模式,其中 PorterDuff.Mode.CLEAR 为清除模式则可以实现上述效果。...getWidth(), getHeight()); canvas.drawRoundRect(round, mRoundRadius, mRoundRadius, paint); 设置背景颜色,样式为填充,绘制圆角矩形...设置背景颜色,样式为填充,绘制圆角矩形 绘制圆环 paint.setColor(Color.RED); paint.setStrokeWidth(mStrokeWidth); // 采用 clear...每次使用时候都需要查资料,然后确定到底需要使用哪种模式。

1.5K00

【怕啥弄啥系列】Canvas - 基础图形绘制

所以打算写得通透,简单明了一些,不想讲太多太复杂东西,让自己这个 沙比 在忘时候,能瞬间捡起来 ? 如何开始Canvas ?...圆角矩形 圆角矩形,没有可以直接调用 api 但是分析一下,并不复杂,就是 四个 90°角,四条直线,从左上角开始按顺序一个个画就可以了(当然了,从哪里开始画无所谓,但是要按顺序) ?...var x = 120; // 圆角矩形左上角横坐标 var y = 120; // 圆角矩形左上角纵坐标 var width = 250; // 圆角矩形宽度 var height = 250; /.../ 圆角矩形高度 var radius = 50; // 圆角半径 // 开始创建新路径 context.beginPath(); // 左上角+顶边 // 绘制左上角圆角 context.arc...擦除 Canvas ctx.clearRect(x,y,w,h) 矩形区域擦除 只要设置 擦出 起点 和 宽高 就好了 我画了宽高为 200 矩形,但是只擦出了 150*150 面积,那么就会剩下一部分没有被清除

1K30

【CSS】CSS 总结 ⑤ ( CSS 盒子边框 | CSS 盒子模型内边距 | CSS 盒子模型外边距 | CSS 盒子模型圆角边框 | CSS 盒子模型阴影 ) ★

使用 通配符选择器 设置 清除内外边距 样式 , 将所有的标签元素 默认内外边距 全部设置为 0 ; 清除标签默认内外边距 样式 : * { /* 清除标签默认内边距 */ padding...大量用到了圆角边框 , 如 : 购物车上数字 : 购物车上浮动数字 , 使用圆角边框 ; 圆角按钮 : 下图中 头像 以及 下面的两个 按钮 , 都是圆角边框 ; 2、圆角边框案例...如果 盒子模型 高度 = 宽度 , 并且 圆角矩形 圆角半径 为 50% 或者 高度/宽度 一半 , 则该圆角矩形 表现就是一个圆 ; /* 设置圆角 下面两种设置效果相同 , 该容器宽高 200px...= 宽度 , 并且 圆角矩形 圆角半径 为 高度 一半 , 则该圆角矩形 表现就是一个正常圆角矩形 , 左右两侧是圆角 ; /* 圆角矩形样式 */ div { width: 200px...; height: 50px; /* 设置圆角 */ border-radius: 25px; } 五、CSS 盒子模型阴影 1、盒子模型阴影属性 盒子模型阴影 使用 如下

29110

一种android中实现“圆角矩形方法

clip**系列方法就是对画布进行裁剪,之后绘制(“可以简单地”认为之前通过canvas绘制已经固定在画布对应存储图像bitmap上了)都在裁剪后区域中进行 使用clipPath()实现圆角矩形完整代码如下...在sdk目录下有对应一个关于Xfermode使用演示:sdk\samples\android-19\ApiDemos\src\com\example\android\apis\graphics\Xfermodes.java...同样思路,可以先做一个圆角矩形画框——方式类似上面的clipPath()也是使用Path实现。然后让原本图片画在这个画框上,效果就是圆角矩形图片了。...接下来就是用上面的示例来完成抗锯齿圆角矩形。...得到Src Bitmap - 圆角矩形 为了四个角可配,继续使用Path来得到圆角矩形,重要是为Paint设置ANTI_ALIAS_FLAG标志开启抗锯齿: // 四个角x,y半径 private

3.4K70

CSS-03

1.所有的文档元素(标签)都会生成一个矩形框,它描述了一个文档元素在网页布局汇总所占位置大小。 2.因此,每个盒子除了有自己大小和位置,还影响着其他盒子大小和位置。...(CSS3) 从此以后,我们世界不只有矩形。...radius 半径(距离) 允许你设置元素外边框圆角。当使用一个半径时确定一个圆形,当使用两个半径时确定一个椭圆。这个(椭)圆与边框交集形成圆角效果。...技巧: 让一个正方形 变成圆圈 border-radius: 50%; 以上效果图矩形圆角, 就不要用 百分比了,因为百分比会是表示高度和宽度一半。 而我们这里矩形就只用 用 高度一半就好了。...为了更方便地控制网页中元素,制作网页时,可使用如下代码清除元素默认内外边距: * { padding:0; /* 清除内边距 */ margin:0;

2K30

【例说Arm-2D界面设计】任意尺寸圆角矩形(上)

例如:在下面的界面“概念设计”中,我们很容易注意到,圆角矩形所构成透明蒙版成功构建出了GUI设计常见要素:面板、按钮、文本框、列表…… 这里就引入了一个很具体问题: 不同圆角矩形拥有不同形状和面积...; 为每一个可能用到圆角矩形地方都保存一个固定尺寸透明蒙版会占用大量存储空间; 那么有没有一种方法可以同时解决上述问题——以极小代价在资源高度受限嵌入式环境下提供任意尺寸圆角矩形(透明蒙版)方案呢...【如何获取一个“圆角”】 在上一篇文章中,我们已经通过“PPT”加“img2c.py脚本”方式生成了一个圆形透明蒙版 circle.c——不清楚创建资源方式小伙伴,可以单击这里来阅读对应内容。...< 不透明度 25% arm_2d_op_wait_async(NULL); } } 要想编写这样一个函数,除了四个圆角可以使用我们前面介绍过方法生成,中间矩形透明部分则直接借助带...限于篇幅原因,关于如何圆角矩形方式来显示指定图片,就放到下一篇来继续讲解了。 收录于话题 #Arm-2D 上一篇【例说Arm-2D界面设计】从不规则图标的显示说起

85520

大白技术控 | Windows10X 模拟器简单上手体验

开始菜单与圆角化 从 Windows8 时代开始,以磁贴为代表直角设计便充斥在 Windows 界面的各个角落。但是在 Windows10X 中,界面全面转向了圆角,注意哈,我说是全面。...最直观后果就是陪伴了我们两个大版本磁贴被取消了。圆角矩形堆叠时必然会产生一个个无法填充死角,多了就会形成一个个空洞,这是很难看。 当然,磁贴取消有视觉原因也有功能原因,只说视觉有些牵强。...这个重新处理过开始菜单和我们以前见识过开始菜单截然不同。 虽然中间出过 Windows8 这个异类,但总体来说,Windows 开始菜单都是一脉相承,除了样式,内部逻辑没有太大变化。...,是一种跨屏状态(使用该状态SDK版本要求是19559以上)。...Win32 应用占据了整个微软应用生态绝大部分,无论如何不能舍弃,但是微软又缺乏对整个应用生态控制力。

1.6K20

小程序Canvas实践指南

最初想到解决方法是监听商品列表弹窗打开事件,弹窗打开时候将点赞动画和购物袋动画移动到屏幕,弹窗关闭时候,移进屏幕内。...3.6 如何实现文字数值排列? 文字竖直排列,英文可以使用 context.rotate()旋转 90deg 实现,但这对于中文,是完全不适用。...}); // 水平垂直对齐方式还原 context.textAlign = align; context.textBaseline = baseline;}; 3.7 canvas 如何绘制圆角矩形...微信小程序允许对普通元素通过 border-radius 设置来进行圆角绘制,但有时候在使用 canvas 绘图时候,也需要圆角,但 canvas 并未提供绘制圆角矩形 kpi,这时候,就需要“...因此,我们可以先绘制四段圆弧,再利用 closePath方法会连接路径特点,即可画出圆角矩形

3.4K53

HTML5矢量实现文件上传进度条

现在进度条与最终效果就差圆角了,那么圆角如何实现呢?...其实也不难,只需要绘制出一个圆角矩形,并结合clip()方法将超出圆角矩形区域部分截取掉即可,clip()方法详细介绍可以参考MDN中介绍。 1....采用自定义类型方法,调用roundRect()方法,绘制一个圆角矩形区域,然后再调用clip()方法,截掉圆角矩形区域外部分。...首先,我们需要有个服务器来接收文件,服务器中除了使用常规web服务器(web服务器简单配置可参考:HT for WebHTML5树组件延迟加载技术实现),还使用了formidable模块,以下是服务器代码...再者,我们需要结合ajax无刷新向服务器上传文件,并结合socket技术监听服务器事件,在浏览器如何使用socket可以参考:HT for WebHTML5树组件延迟加载技术实现。

2.5K40
领券