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

有没有什么快捷的方法来编写CGPoint、CGRect等?

在iOS开发中,可以使用Swift语言的扩展(extension)来快速编写CGPoint、CGRect等结构体的代码。扩展可以为已有的类、结构体、枚举或协议添加新的功能,包括属性、方法和下标等。

下面是一个示例代码,展示了如何使用扩展来简化CGPoint和CGRect的编写:

代码语言:swift
复制
extension CGPoint {
    static func make(x: CGFloat, y: CGFloat) -> CGPoint {
        return CGPoint(x: x, y: y)
    }
}

extension CGRect {
    static func make(x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat) -> CGRect {
        return CGRect(x: x, y: y, width: width, height: height)
    }
}

通过上述扩展,我们可以使用CGPoint.make(x:y:)CGRect.make(x:y:width:height:)方法来创建CGPoint和CGRect对象,而不需要每次都写完整的初始化代码。

使用示例:

代码语言:swift
复制
let point = CGPoint.make(x: 10, y: 20)
let rect = CGRect.make(x: 0, y: 0, width: 100, height: 200)

这样,我们可以通过调用make方法来快速创建CGPoint和CGRect对象,提高了代码的可读性和编写效率。

关于CGPoint和CGRect的概念、分类、优势和应用场景,可以参考苹果官方文档:

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,建议您参考腾讯云官方文档或咨询腾讯云的技术支持团队,获取相关信息。

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

相关·内容

CoreText实现图文混排之点击事件

如果在,优先响应图片事件 return; } [self ClickOnStrWithPoint:location];//响应字符串事件 } 这里老司机还是要解释一下,为什么我要设置成优先响应图片的事件呢...是这样的,在我们使用的过程中,大部分的场景是如下过程: 给整段富文本添加属性,事件等 插入图片 给图片设置点击事件 正是因为这样,我们可以看出逻辑上图片的响应事件的优先级明显是要高于文字的。...UITouch对象的locationInView是专门用来给出UITouch对象在某个View中的坐标的方法,因此我们可以用这个方法来求出当前点击位置的系统坐标。...)frame containsPoint:(CGPoint)point ///点包含检测 -(BOOL)isFrame:(CGRect)frame containsPoint:(CGPoint)point...有没有怕怕的。 仔细看你会发现,有很多代码跟昨天的有相似之处,就是这样,因为这里也遍历了每一个CTRun,只不过更加细化到CTRun中的每个字。

1K20
  • 老司机出品———疯狂造轮子之滑动验证码

    要问我为什么消失了这么久,如果你知道什么叫封闭开发或许你会懂我。 笑不出来 然而最近一直也没时间搞什么飞机,也没有什么能拿出来跟大家分享的,就把最近开发过程中写的一些小东西贴出来给大家看吧。...因为东西比较少,而且没有什么新鲜的技术点,所以老司机先把效果图放出来,这样的话如果你不感兴趣可能看到这就够了。...之所以写这个控件,是因为需求用到了,然而当前有没有相应的类库能让我拿来直接用。 所有效果是仿照日常网页中的效果去做的,所以我们还是应该首先分析一下我们需要什么。...DWCheckBox就是单选复选框了,也是一个快捷使用并且有着高定制型的类库。 ---- 继承UIControl重新实现一个Slider 广告打完了咱们来看第二环节,slider。...---- 好吧,今天其实也没什么新鲜内容,毕竟都是一些UI控件的封装。 不过也是捋一下思路,控件要如何封装,所以还是不要脸的发出来了。 喜欢哪个给哪个Star吧恩,就是这么好意思

    95141

    iOS开发CoreGraphics核心图形框架之一——CGPath的应用

    在Objective-C工程中,CoreGraphics其中方法都是采用C语言风格进行编写的,同时其并不支持Objective-C的自动引用计数,在使用这个框架进行编程时,开发者要手动对内存进行管理。...在Swift工程中,Apple使用Swift语言对CoreGraphics矿建进行了重构,将CGPath,CGMutablePaht等都重新定义为了类。...cg_nullable path, CGRect * rect); //获取某个路径当前绘制所在的点 CGPoint CGPathGetCurrentPoint(CGPathRef path); /...结构体,开发者可以通过如下方法来获取所有操作行为: CGPathApply(pathRef, nil, func); CGPathApply()方法中的第3个参数为一个函数指针,示例C函数实现如下: void...: struct CGPathElement { //操作节点的类型 CGPathElementType type; //对应的点集 CGPoint * points; }; //CGPathElementType

    1.8K31

    iOS开发CoreAnimation解读之二——对CALayer的分析

    2.自定义view默认layer属性的类         UIView是很多视图类的父类,根据功能不同,会分出UIImageView,UIScrollerView,UITableView等,CALayer...UIView其中的layer默认是CALyer类,我们也可以通过重写View中的如下方法来使其创建我们需要的layer类: +(Class)layerClass{ } 例如我们自定义一个View类,在自定义一个...三、设置与调整Layer层的内容 设置层的内容有下面三种方式: 1.可以通过设置CGImage为layer的内容。 2.可以通过代理方法来动态修改或者绘制层的内容。...3.一些属性与方法 + (nullable id)defaultValueForKey:(NSString *)key; 上面这个属性用于设置layer中默认属性的值,我们可以在子类中重写这个方法来改变默认创建的...:(nullable CALayer *)l; - (CGPoint)convertPoint:(CGPoint)p toLayer:(nullable CALayer *)l; - (CGRect)convertRect

    1.1K20

    iOS动画-CALayer基础知识

    我们在访问UIView的frame,bounds等属性又或者设置动画,其实也都是在操作其关联图层CALayer的特性。...但是,UIView因为继承了UIResponder而具备响应事件的能力;而CALayer并不清楚具体的响应者链(iOS通过视图等级关系用来传送触摸事件的机制),于是它并不能响应事件,即使它也提供一些方法来判断是否一个触点在图层的范围之内...的绘制逻辑; 使用总结:当我们需要自定义寄宿图时,其实不必实现displayLayer:和-drawLayer: inContext:方法来绘制寄宿图。...CALayer *)l; - (CGPoint)convertPoint:(CGPoint)p toLayer:(nullable CALayer *)l; - (CGRect)convertRect...(CGPoint)convertPoint:(CGPoint)point fromView:(nullable UIView *)view; - (CGRect)convertRect:(CGRect

    1.9K50

    IOS触摸事件分发机制详解

    UIEvent UIEvent包含最常见的三种事件:Touch Events(触摸事件)、Motion Events(运动事件,比如重力感应和摇一摇等)、Remote Events(远程事件,比如用耳机上得按键来控制手机...具体的检测工作是通过UIView中两个方法来完成的 - (nullable UIView *)hitTest:(CGPoint)point withEvent:(nullable UIEvent *)event...和UIEvent返回Hit-Test view,该方法调用 pointInside:withEvent: 方法来检测point是否在view的边界范围内,如果在view的边界范围内,则返回YES,然后,...control事件(Action messages),UIBUtton,UISwitch等 编辑菜单事件(Editing-menu messages)复制、粘贴、剪切等 文本控件编辑事件(Text editing...应用 扩大按钮点击区域 当视图调用 - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 进行边界检测的时候,重写该方法扩大视图的检测边界值

    3.6K90

    Swift 自定义布局实现 Cover Flow 效果

    同学你讲的没错,但是当我们 Cell 的 width 加上边距等如果不占满 UICollectionView,那么就会出现一个问题,虽然你实现了分页效果,但是你的 Cell 在滚动的过程中是不会居中的....读过我前几篇 UICollectionView 系列的小伙伴们,不知道你们还有没有印象,我写过一篇教程叫做 "使用 UICollectionView 实现分页滑动效果" 这里附上链接(使用 UICollectionView...CGPoint 它的作用在于 UICollectionView 停止滚动时,返回一个新的偏移点坐标,它有俩个参数,第一个参数 proposedContentOffset 指的是滚动将要停止时的偏移点坐标...proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint) -> CGPoint { var targetPoint...教程系列的第四篇,接下来我还会继续更新;如果大家有什么疑问,可以与我交流,也欢迎大家来纠错,老样子,按照国际惯例,最后附上项目工程地址: https://github.com/ShenJieSuzhou

    1.8K20

    iOS开发CoreGraphics核心图形框架之四——变换函数

    iOS开发CoreGraphics核心图形框架之四——变换函数 一、引言     在上一篇博客中,介绍了有关CGContext相关操作方法,其中可以直接调用一些方法来进行所绘制图形的平移,缩放,翻转等变换...关于CGContext的相关内如博地址客如下:https://my.oschina.net/u/2340880/blog/759070。...二、使用CGAffineTransform相关函数进行绘制图形的几何变换     CGAffineTransform中定义的方法即意义列举如下: //创建标准的变换矩阵 CGAffineTransform...CGPoint CGPointApplyAffineTransform(CGPoint point, CGAffineTransform t); //获取应用变换后某个区域的尺寸 CGSize CGSizeApplyAffineTransform...(CGSize size, CGAffineTransform t); //获取应用变换后某个区域的位置和尺寸 CGRect CGRectApplyAffineTransform(CGRect rect

    57410

    【IOS开发基础系列】UIView专题

    3.在有storyboard的项目中,UIWindow是如何创建的?         为什么创建一个storyboard,没有看到创建uiwindow的过程?         ...讨论         这个值改变是因为设置了一些需要在动画块中产生动画的属性。动画块可以被嵌套。如果在没有在动画块中调用那么setAnimation类方法将什么都不做。...同样也是调用setNeedDisplay等间接调用以上方法。     ...3、若要实时画图,不能使用gestureRecognizer,只能使用touchbegan等方法来掉用setNeedsDisplay实时刷新屏幕。...viewWithTag: 10002];     }     return hitView; } @end 5.1.4 利用catalog实现hitTest         来自STKit,这个category的目的就是方便的编写

    70630

    高级 SwiftUI 动画 — Part 1:Paths

    每当视图上的可动画参数发生变化时,SwiftUI 就会从旧值到新值制作动画。一些可动画的参数包括大小(size)、偏移(offset)、颜色(color)、比例(scale)等。...超过两个可动画的参数 如果你浏览一下 SwiftUI 的声明文件,你会发现该框架相当广泛地使用AnimatablePair。比如说。CGSize、CGPoint、CGRect。...使你自己的类型动画化(通过VectorArithmetic) 以下类型默认实现了 Animatable : Angle, CGPoint, CGRect, CGSize, EdgeInsets, StrokeStyle...SwiftUI + Metal 如果你发现自己正在编写复杂的动画,你可能会开始看到你的设备受到影响,同时试图跟上所有的绘图。如果是这样,你肯定会从启用金属的使用中受益。...,但只适用于图形等东西。

    3.8K20

    CoreText实现图文混排之文字环绕及点击算法

    先说一下我为什么会来补发这一章呢? 1.老司机最开始没有留demo,以至于这个博客老司机从发出来到现在整整维护了半年了=。=其实博客里面就是全部代码,但是宝宝们任性的要demo。...排除文字区域 这里你可能会有个疑问,问什么我cirP的rect是CGRectMake(100, 100, 100, 200),这个排除的区域却在那里。...这个方法是获取当前点在所在文字处于当前绘制文本的索引值。事实上如果没有一些其他因素的话,能使用这个方法是最简便快捷的。然而老司机为什么没有使用这个方法去获取点击事件呢?请看下面的动图? ?...老司机顺理成章的就给想要添加点击事件的活动文本加了click这么一个属性。(demo中老司机就随便写了,实际要慎重考虑叫什么名字不会被觉得太Low?)...针对CTRun的特性,我们不难想到,文字由于可能出现两行,也有可能会活动文本的字体字号等其他属性不尽相同导致一段文字由两个CTRun进行绘制,所以不能单纯的保存一个frame,而是要以一个数组容纳他。

    1.3K20
    领券