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

显示CGRect边框的简单方法?

在iOS中,有多种方法可以在视图上显示CGRect边框。以下是几种简单的方法:

1. 使用CAShapeLayer

使用CAShapeLayer可以在视图上创建一个带边框的子图层,并且可以通过设置frame属性来显示边框。示例代码如下:

代码语言:swift
复制
let borderLayer = CAShapeLayer()
borderLayer.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
view.layer.addSublayer(borderLayer)

let borderPath = UIBezierPath(roundedRect: CGRect(x: 0, y: 0, width: 100, height: 100), cornerRadius: 0)
borderLayer.path = borderPath.cgPath
borderLayer.fillColor = UIColor.clear.cgColor
borderLayer.strokeColor = UIColor.red.cgColor
borderLayer.lineWidth = 1

2. 使用UIView + CALayer

可以通过创建一个UIView的子类(例如CustomView),并在该子类中重写draw()方法,来绘制边框。示例代码如下:

代码语言:swift
复制
class CustomView: UIView {

    override func draw(_ rect: CGRect) {
        let borderLayer = CALayer()
        borderLayer.frame = rect
        borderLayer.backgroundColor = UIColor.red.cgColor
        borderLayer.borderColor = UIColor.red.cgColor
        borderLayer.borderWidth = 1
        addSubview(borderLayer)

        let borderPath = UIBezierPath(roundedRect: rect, cornerRadius: 0)
        borderLayer.path = borderPath.cgPath
        borderLayer.fill()
    }
}

3. 使用Core Graphics

使用Core Graphics绘制边框,可以通过创建一个CGContext,绘制直线、曲线等方式来绘制边框。示例代码如下:

代码语言:swift
复制
let context = CGContext(data: nil, width: 100, height: 100, bitsPerComponent: 8, bytesPerRow: 0, space: CGColorSpaceCreateDeviceGray(), attributes: nil, context: nil)

let rect = CGRect(x: 0, y: 0, width: 100, height: 100)

context.setStrokeColor(UIColor.red.cgColor)
context.setLineWidth(1)
context.move(to: CGPoint(x: 0, y: 0))
context.addLine(to: CGPoint(x: 100, y: 100))
context.strokePath()

以上是三种不同的方式,可以根据需要选择一种方式进行绘制。

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

相关·内容

Electron宽高渲染问题(边框显示不全解决方法

: white; box-sizing: border-box; 我们设置了1px边框,但是这样有的电脑能正常显示边框有的又不行,到底是什么原因呢?...浏览器解析小数方式 我们先了解一个知识点 在使用小数点时,会存在一些浏览器解析差异问题: .container{ width:10.9px; } IE8 中会显示当前宽度为11px,而在...IE7 会以10px进行显示; 所以对于小数点使用不同浏览器会存在不同解析方式: 采用四舍五入解析浏览器:IE8、IE9、Chrome、Firefox 采用直接取整解析浏览器:IE7、Safari...解决方法 那么我们就知道了 Electron用是Chrome内核,那么如果系统设置为125%,那么所有的宽高计算都要乘以1.25,这样经过四舍五入之后就可能导致宽高大于窗口宽高问题。...调整宽高值 所以我们还是调整一下窗口大小保证计算结果为整数 先看看系统中常见缩放比例100%、125%、150%、175%、200%、225%、250%、300% 除去整数只剩下1.25、1.5

1.9K10
  • CSS多边框几种实现方法

    如果把box-shadow特性两个偏移量 h-shadow 、v-shadow设置为0,将模糊值blur也设置为0,此时增加扩张半径,就会使元素投影变为实线边框。...这样就可以模拟多边框效果了,首先看下box-shadow语法和参数。...y-shadow:设置对象阴影垂直偏移值,单位可以是px、em或百分比等,允许负值。 blur:用于设置边框阴影半径大小。 spread:扩展半径,设置阴影尺寸;这个参数可选,缺省时值为0。...outline实现 如果我们只需要2层边框,那么使用outline是不错选择,先设置常规border边框,再加上outline(描边)。...而且outline比上面的box-shadow还有一大优点就是,可以生成虚线等边框。通常outline属性需要和对应描边偏移outline-offset来实现。

    2K20

    LaTeX中表格多行显示简单设置方法

    简介一下这样简单方法: 之前设置多行显示时候,用类似于以下这样方法进行多行显示: \begin{table} \newcommand{\tabincell}[2]{\begin{tabular...\tabincell{c}{1\\2\\3\\4\\5} \\ \hline \end{tabular} \end{table} 可是这样方法有个问题...,有时候我们并不知道单元格在什么时候应该换行(比如单元格里有非常多文字,可是非常难精确地把这些文字划分到每一行中,这时候用以下这样方法,能够让LaTeX自己主动分行: \begin{table}...sentence that may exceed the bound of this table.\\ \hline \end{tabular} \end{table} 用p{3cm}这样方法限制了第二列最大宽度...就这么简单经验,记录一下。 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/118008.html原文链接:https://javaforall.cn

    2.6K30

    iOS开发——定制UITextField

    在iOS中UITextField这个控件作为文本输入控件一定是使用率最高几个控件之一,而iOS提供默认原始TextField造型肯定在开发时很难满足我们要求,原因很简单,不够美观,实在太单调。...所以今天我们从一些简单复写UITextField方法开始,来讲一讲如何定制一个属于自己UITextField。...今天我们主要从UITextField键盘收起、placeholder设置以及自定义距离、字体,以及控制输入文本时,距离UITextField边框距离和UITextField中一些常用方法和枚举变量等方面来阐述如何定制自己...CGRect)bounds { return CGRectInset( bounds, 20, 0); } //控制显示文本位置 -(CGRect)textRectForBounds:(CGRect...位置之后,我们也要相应调整文本显示位置,以及在编辑完成后,文本显示在输入框位置。

    1.6K40

    简单12864显示程序

    我使用内部自带汉字库一款液晶作为风速显示 好了废话不多说,接下来就贴上我程序 #//头信息 #include #include #include <INTRINS.H...DELAYMS 80 //端口定义 sbit RS_Port = P2^7; sbit RW_Port = P2^6; sbit E_Port = P2^5; sbit PSB_Port = P2^4; //输入显示内容...# 每行显示七个字 要改内内容直接在下边该就行了 // 但是需要留意是,每行必须七个字 否则乱码 后期我会修改 xchar CorpInf[]= { "风速风速风速风" "风速风速风速风" "风速风速风速风...; _nop_(); delay(250); //ST7920 Init Init(); while (1) { CRAM_OFF(); DisGBStr(CorpInf); } } 其中需要注意是在数组中显示是可以变化...如果不想写这么多字化 也可以修改后边for循环来是显示字变少,但是如果不这样操作的话,就会使显示乱码 xchar CorpInf[]= { "风速风速风速风" "风速风速风速风" "风速风速风速风

    57010

    MATLAB图像显示方法

    文章和代码以及样例图片等相关资源,已经归档至【Github仓库:digital-image-processing-matlab】 文章目录 MATLAB图像显示方法 目的 内容 (1)单位冲击响应序列...(2)单位阶跃序列 (3)正弦序列 (4)指数序列 (5)复指数序列 MATLAB图像显示方法 1.图像读 2.图像显示 (1)图像显示 (2)同屏显示多个图像 3.数字图像处理中常用到MATLAB...函数 MATLAB图像显示方法 目的 了解 MATLAB 基本功能及操作方法。...varphi) A0=-0.2; f=0.05; pi=3.14; K0=2/3*pi; N=40; n=-N:1:N; x=A0*sin(2*pi*f*n+K0); plot(n,x) MATLAB图像显示方法...1.练习图像读写和显示函数使用方法 2.掌握MATLAB支持五类图像显示方法 3.数字图像处理中常用到MATLAB函数 1.图像读 RGB=imread('D:\pic\DIP3E_CHO1\

    4.7K10

    目前解决移动端1px边框最好方法

    在移动端开发时,经常会遇到在视网膜屏幕中元素边框变粗问题。本文将带你探讨边框变粗问题产生原因及介绍目前市面上最好解决方法。...个像素显示原来 1 个物理像素显示内容,从而让 UI 显示更精致清晰,这 2x2 个像素叫做逻辑像素。...使用 transform 解决 通过设置元素 box-sizing 为 border-box,然后构建伪元素,再使用 CSS3 transform 缩放,这是目前市面上最受推崇解决方法。...这种方法可以满足所有的场景,而且修改灵活,唯一缺陷是,对于已使用伪元素元素要多嵌套一个无用元素。...使用 transform 解决方法,仅有几行源码,使用起来非常方便,是目前发现最好解决方法

    1.5K20

    iOS开发CoreGraphics核心图形框架之二——深入理解图形上下文

    ); UIKIT_EXTERN void UIRectFill(CGRect rect); //下面这两个方法用于向当前图形上下文中绘制矩形边框 UIKIT_EXTERN void UIRectFrameUsingBlendMode...(CGRect rect, CGBlendMode blendMode); UIKIT_EXTERN void UIRectFrame(CGRect rect); //这个方法用于裁剪当前图形上下文绘制区域...UIKIT_EXTERN void UIRectClip(CGRect rect); 上面方法CGBlendMode参数用于设置图像混合模式,意义列举如下: typedef CF_ENUM (int32...void UIGraphicsEndImageContext(void); 我们可以通过代码来画一个简单UIImage图像,示例如下: - (void)viewDidLoad {...//进行矩形区域边框绘制 void CGContextStrokeRect(CGContextRef cg_nullable c, CGRect rect); //进行矩形区域边框绘制 可以设置边框宽度

    2.7K20

    Android开发实现去除bitmap无用白色边框方法示例

    本文实例讲述了Android开发实现去除bitmap无用白色边框方法。...分享给大家供大家参考,具体如下: 图示 如下图所示,之前介绍过Android Bitmap用法,这里提供工具类作用是,去除内容区域以外白色边框。.... * 去除 bitmap 无用白色边框 */ public class BitmapDeleteNoUseSpaceUtil { /** * 灰度化 bitmap * @param imgTheWidth...int left = 0; // 左边框白色高度 int right = 0; // 右边框白色高度 int bottom = 0; // 底边框白色高度 for (int h = 0; h < bitmap.getHeight...》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结

    1.3K20

    SwiftUI: 使用 ImagePaint 制作边框和填充

    例如,我们可以将Color用作视图,但它也符合ShapeStyle——用于填充,笔触和边框另一种协议。...为了解决这个问题,SwiftUI为我们提供了一种专用类型,该类型可以完全控制应如何渲染图像方式包装图像,这又意味着我们可以将它们用于边框和填充而不会出现问题。...举例来说,我们可以使用0.2比例尺绘制示例图像,这表示该图像显示尺寸为正常尺寸1/5: Text("Hello World") .frame(width: 300, height: 300)....border(ImagePaint(image: Image("Example"), scale: 0.2), width: 30) 如果要尝试使用sourceRect参数,请确保传入相对大小和位置CGRect...例如,这将显示示例图像整个宽度,但仅显示中间一半: Text("Hello World") .frame(width: 300, height: 300) .border(ImagePaint

    1.8K50

    MATLAB GUI显示图片方法

    大家好,又见面了,我是你们朋友全栈君。 前言   在MATLAB命令行中显示图片或者数据,十分简单,仅通过imshow,plot或者imagesc等函数即可。   ...而在MATLAB GUI中显示图片,通常需要借助Axes控件来实现。相比而言,多一些操作。...在GUI中显示图片   创建一个空白界面   在GUIDE中,添加一个按钮,然后再添加一个Axes控件,适当调整两者比例。...可能MATLAB本身使命仍旧是做模拟仿真、数学运算,而不是做软件界面吧。但事实上,国外大神在GitHub上开源GUI界面总是那么精美。...看来还是国内科研项目对软件界面重视不够,以至于需求没那么多,也就没那么多人关注了。   这对于初学者而言,十分难受。

    4.5K11

    Emlog评论显示楼层方法

    如何实现评论显示楼层?几楼几楼样子。这个方法是我在动点那里看到,我感觉很不错,虽然说EMLOG博客程序是属于开源程序,但是对于我们这些菜鸟来说开源还不够,哈哈。...因为不懂什么代码,所以好多东西都是拿人家来用。东拼西凑给补补丁丁 ,补起来。看起来我站点模版很不错,其实都是借用人家成果来用。好了,不多说了,切入正题。    ...在一些模版中加入一些楼层样式是很不错。按照原文说:其实很简单实现。    ...>,放入你想要实现位置,这样的话就能显示评论里面的楼层了,具体样式见本站留言板。 5、最后把echo_log.php和page.php两个文件中调用评论函数,放入你想要实现位置,这样的话就能显示评论里面的楼层了,具体样式见本站留言板。 ---- 小技巧:为了追求极致效果还可以在调用楼层地方加个判断语句来个沙发地板之类显示 <?

    30130
    领券