首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏TechBox

    Swift 范的 CGRect、CGSize 和 CGPoint(转)

    CGRect, CGSize, CGPoint C 语法 —— 披着羊皮的狼 我相信下面这种写法,很多 Swift 开发者都会中枪,让我看见你们的双手! CGRect(x: 0, y: 0, width: 100, height: 100) let size = CGSize(width: 100, height: 100) let point = CGPoint let rect = CGRect.zero let size = CGSize.zero let point = CGPoint.zero 这样写代码也更为清晰,Xcode 会将 . let view = UIView(frame: .zero) view.frame.size = CGSize(width: 10, height: 10) view.frame.origin = CGPoint

    7.7K30发布于 2018-06-05
  • 来自专栏日常技术分享

    iOS Charts实现非连续折线图

    == nil { return } // let the spline start cubicPath.move(to: CGPoint 0.0 var pt1 = CGPoint(x: CGFloat(dataSet.entryForIndex(bounds.min + bounds.range)?.x ?? 0.0), y: fillMin) var pt2 = CGPoint(x: CGFloat(dataSet.entryForIndex(bounds.min)?.x ?? drawFirst){continue} filled.addLine(to: CGPoint(x: CGFloat(previousEntry.x), y: fillMin (x: CGFloat(e.x), y: fillMin), transform: matrix) filled.addLine(to: CGPoint(x: CGFloat

    2.1K30发布于 2018-12-05
  • 来自专栏梧雨北辰的开发录

    iOS动画-CALayer布局属性详解

    这里提供一种方法如下: - (void)setAnchorPoint:(CGPoint)anchorPoint forView:(UIView *)view{ CGPoint oldOrigin = anchorPoint; CGPoint newOrigin = view.frame.origin; CGPoint transition; transition.x 锚点动画.gif 三、视图与图层的坐标系 CALayer给不同坐标系之间的图层转换提供了一些工具类方法: - (CGPoint)convertPoint:(CGPoint)p fromLayer:(nullable CALayer *)l; - (CGPoint)convertPoint:(CGPoint)p toLayer:(nullable CALayer *)l; - (CGRect)convertRect )convertPoint:(CGPoint)point toView:(nullable UIView *)view; - (CGPoint)convertPoint:(CGPoint)point fromView

    2.6K20发布于 2019-04-23
  • 来自专栏iOS开发干货分享

    Core Animation总结

    : CGPoint(x: 100, y: 200)), NSValue(cgPoint: CGPoint(x: 200, y: 200)), NSValue(cgPoint: CGPoint(x: 200, y: 300)), NSValue(cgPoint: CGPoint(x: 100, path.addCurve(to: CGPoint(x: 50.0, y: 275.0), control1: CGPoint(x: 150.0, y: 275.0), control2: CGPoint to: CGPoint(x: 350.0, y: 275.0), control1: CGPoint(x: 450.0, y: 275.0), control2: CGPoint(x: 130, y: NSValue(cgPoint: CGPoint(x: 200, y: 300)), NSValue(cgPoint: CGPoint(x: 100,

    1.7K10发布于 2019-05-21
  • 来自专栏HelloWorld杰少

    使用 UICollectionView 实现分页滑动效果

    , withScrollingVelocity velocity: CGPoint) -> CGPoint // return a point at which to rest after scrolling me the code, 代码实现如下: class RowStyleLayout: UICollectionViewFlowLayout { private var lastOffset: CGPoint override init() { super.init() lastOffset = CGPoint.zero } required init? , withScrollingVelocity velocity: CGPoint) -> CGPoint { // 分页的 width let pageSpace = = CGPoint.zero if (offsetForCurrentPointX > pageSpace/8.0) && (lastOffset.x >= offsetMin) &

    3.9K20编辑于 2022-08-04
  • 来自专栏大话swift

    iOS --- 简单的任务绘制复盘

    move(to: CGPoint(x: 10, y: startOffsetY)) context?. addLine(to: CGPoint(x: self.frame.width-20, y: startOffsetY)) context?. addLine(to: CGPoint(x: 10, y: startOffsetY+rectHeight)) context?. move(to: CGPoint(x: hoverX, y: startOffsetY)) context?. move(to: CGPoint(x: 10, y: startOffsetY)) //添加线条,从一个点画向另一个点,形成线条 context?.

    81500发布于 2020-03-16
  • 来自专栏程序员充电站(itcharge)

    OC知识--Foundation框架详尽总结之『数字、结构体、日期、文件类』

    bujige.net 文章链接:https://bujige.net/blog/iOS-Foundation-other.html 本文对Foundation框架中一些数字类(NSNumber)、常用结构体类(CGPoint 结构体类(CGPoint、CGSize、CGRect、CGRange和NSValue) 1. NSPoint和CGPoint CGPoint和NSPoint是同义的 CGPoint代表的是二维平面中的一个点 CGPoint有2个成员 CGFloat x:表示该矩形原点的横坐标位置 CGFloat y:表示该矩形原点的纵坐标位置 typedef CGPoint NSPoint; // CGPoint的定义 struct CGPoint { CGFloat x; CGFloat y; }; typedef struct CGPoint CGPoint; typedef double CGFloat; 可以使用CGPointMake和NSMakePoint函数创建CGPoint CGPoint

    86540发布于 2018-05-31
  • 来自专栏sktj

    IOS CAKeyFrameAnimation 实现动态位移

    self.view.addSubview(imageView) 8 9 let animation = CAKeyframeAnimation(keyPath:“position”) 10 11 let point1 = CGPoint (x:40, y:80) 12 let point2 = CGPoint(x:280, y:80) 13 let point3 = CGPoint(x:60, y:300) 14 let point4 = CGPoint(x:280, y:300) 15 16 animation.values = [NSValue(cgPoint:point1), NSValue(cgPoint:point2 ), 17 NSValue(cgPoint:point3), NSValue(cgPoint:point4)] 18 animation.keyTimes = [NSNumber(value:0.0

    1.5K20发布于 2019-07-08
  • 来自专栏移动端开发

    SwiftUI 官方画图实例详细解析

    line segment from the current point to the specified /// point. public mutating func addLine(to p: CGPoint , control cp: CGPoint) 这个方法是 Path 类的画贝塞尔曲线的方法,通过一个控制点从开始点到结束点画一条曲线, 在通过这两个主要方法画出我们图形的轮廓之后我们在通过 CGPoint(x: middle, y: topHeight / 2 + spacing), CGPoint(x: middle + topWidth, y: /// path 移动到这个点重新开始绘制 其实这句没啥影响 /// path.move(to: CGPoint(x: middle, y ), CGPoint(x: width - spacing, y: height - spacing), CGPoint(

    1.3K10发布于 2021-01-20
  • 来自专栏HelloCode开发者学习平台

    高效学习iOS —— Stroke和路径动画

    , targetContentOffset: UnsafeMutablePointer<CGPoint>) { } (滑动显示更多) 然后在viewController里面添加refreshVie : UnsafeMutablePointer<CGPoint>) { if ! , targetContentOffset: UnsafeMutablePointer<CGPoint>) { if ! , targetContentOffset: UnsafeMutablePointer<CGPoint>) { if ! , targetContentOffset: UnsafeMutablePointer<CGPoint>) { if !

    2.3K20编辑于 2022-01-14
  • 来自专栏一“技”之长

    iOS(CGGeometry)几何类方法总结 原

    一、几个常用结构体 struct CGPoint { CGFloat x; CGFloat y; }; 定义一个点,设置x坐标和y坐标 struct CGSize { CGFloat width; height; }; 定义一个尺寸,设置宽度和高度 struct CGVector { CGFloat dx; CGFloat dy; }; 定义一个二维矢量 struct CGRect { CGPoint origin; CGSize size; }; 定义一个矩形 二、几个系统定义的量 const CGPoint CGPointZero 零点,与CGPointMake(0, 0)等效 const CGSize point1, CGPoint point2); 判断两个点是否相等 bool CGSizeEqualToSize(CGSize size1, CGSize size2); 判断两个尺寸是否相等 bool point); 返回一个表示点的字典 bool CGPointMakeWithDictionaryRepresentation(CFDictionaryRef dict, CGPoint *point

    1.1K20发布于 2018-08-15
  • 来自专栏進无尽的文章

    绘图-UIBezierPath

    )point; /** * 附加一条直线到接收器的路径 * @param point 要到达的坐标 */ - (void)addLineToPoint:(CGPoint)point; / )endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2; ? )endPoint controlPoint:(CGPoint)controlPoint; 图片来自网络 /** * 添加一个弧线 与 bezierPathWithArcCenter:radius // 路径包括的矩形 @property(nonatomic,readonly) CGRect bounds; // 图形路径中的当前点 @property(nonatomic,readonly) CGPoint currentPoint; // 接收器是否包含指定的点 - (BOOL)containsPoint:(CGPoint)point; // Drawing properties // 线宽 @property

    1.8K20发布于 2018-09-12
  • 来自专栏增长技术

    iOS坐标系统frame和bounds的区别(位置和大小)

    iOS 首先左上角为坐标原点(0,0) CGPoint创建坐标点也就是位置 CGSize表示视图宽度和高度 CGRect结合了CGPoint和CGSize origin表示左上角所在的CGPoint frame是在父视图的CGRect bounds是指在自身视图中的CGRect center是指在父视图中的CGPoint ? cocos2d 首先左下角为坐标原点(0,0) anchorPoint中心点(0.5,0.5) bounds和frame相同 position就是CGPoint

    2.2K20发布于 2018-09-06
  • 来自专栏老司机的简书

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

    )systemPointFromScreenPoint:(CGPoint)origin { return CGPointMake(origin.x, self.bounds.size.height ---- 坐标转换 这里用到了第一个工具方法(老司机习惯把写好的方法分类,这些中间方法老司机习惯叫他们工具方法),-(CGPoint)systemPointFromScreenPoint:(CGPoint 其实很简单 ///坐标转换 /* 将屏幕坐标转换为系统坐标 */ -(CGPoint)systemPointFromScreenPoint:(CGPoint)origin { return :(CGPoint)location返回YES,否则返回NO。 回到上一层,如果-(BOOL)checkIsClickOnImgWithPoint:(CGPoint)location返回YES,则说明点击的是图片并且已经执行完响应事件,直接return结束方法即可。

    1.2K20发布于 2018-08-22
  • 来自专栏Swift社区

    SwiftUI 动画进阶 — Part 5:Canvas

    gradient = Gradient(colors: [.green, .blue]) let from = rect.origin let to = CGPoint font(font)) let start = CGPoint(x: (size.width - resolved.measure(in: size). 只有中间的房子,需要被模糊化: 下面的所有例子将使用以下CGPoint扩展: extension CGPoint { static func +(lhs: CGPoint, rhs: CGPoint ) -> CGPoint { return CGPoint(x: lhs.x + rhs.x, y: lhs.y + rhs.y) } static func -(lhs : CGPoint, rhs: CGPoint) -> CGPoint { return CGPoint(x: lhs.x - rhs.x, y: lhs.y - rhs.y)

    3.4K10编辑于 2022-04-04
  • 来自专栏HelloWorld杰少

    好看的图表怎么画,看完这几个 API 你就会了

    CGFloat = 0) -> some View 创建一个路径 var path = Path() 在指定点开始一个新的子路径 public mutating func move(to p: CGPoint ) 将二次贝塞尔曲线添加到路径中,并具有指定的端点和控制点 public mutating func addQuadCurve(to p: CGPoint, control cp: CGPoint) addLine 函数的定义为: public mutating func addLine(to p: CGPoint) 这个函数的作用是从当前点到给定的点绘制一条直线。 由于我们已经知道了数据数组,但是它仅仅只是一个 Double 类型的数组,所以我们需要将它的每个值来对应一个 CGPoint,那具体怎么做呢!接着往下看。 , control cp: CGPoint) 使用方式如代码所示: static func quadCurvedPathWithPoints(points:[Double], step:CGPoint

    3.4K10编辑于 2022-08-04
  • 来自专栏一“技”之长

    挖一挖贝塞尔曲线那些事 原

    )point; //添加一天线 - (void)addLineToPoint:(CGPoint)point; //添加一个二阶贝塞尔曲线段 - (void)addCurveToPoint:(CGPoint )endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2; //添加一个三阶贝塞尔曲线段 - (void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint; //添加圆弧 - (void)addArcWithCenter :(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise currentPoint; //判断是否包含某个点 - (BOOL)containsPoint:(CGPoint)point; //设置线宽 @property(nonatomic) CGFloat

    82410发布于 2018-08-15
  • 来自专栏学海无涯

    iOS14开发-动画

    坐标转换分为两种,一种是 CGPoint 转换,一种是 CGRect 转换。 CGPoint转换 // self.view(from参数)的self.redView.center(point参数)转换到self.redView(调用者)中 orangeView.center = withRelativeStartTime: 0.1, relativeDuration: 0.1, animations: { self.leaf.center = CGPoint withRelativeStartTime: 0.2, relativeDuration: 0.1, animations: { self.leaf.center = CGPoint withRelativeStartTime: 0.3, relativeDuration: 0.1, animations: { self.leaf.center = CGPoint

    1.1K40发布于 2021-04-23
  • 来自专栏coding...

    swift3.0 CoreGraphics绘图-实现画板Demo地址

    成员变量 public var lineWidth:CGFloat = 1 fileprivate var allLineArray = [[CGPoint]]() //所有的线 记录每一条线 fileprivate var currentPointArray = [CGPoint]() //当前画线的点 画完置空 增加到 线数组中 fileprivate var { let point:CGPoint = (event?.allTouches?.first?.location(in: self))! { let point:CGPoint = (event?.allTouches?.first?.location(in: self))! <tmpArr.count { let endPoint:CGPoint = tmpArr[j] context

    89140发布于 2018-08-23
  • 来自专栏程序员——iOS开发

    从案例出发,由浅到深了解 iOS 动画

    (x: 0.0, y: 0.5) gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.5) // 灰, 白, 灰 , targetContentOffset: UnsafeMutablePointer<CGPoint>) { if ! ), controlPoint1: CGPoint(x: frame.minX + 0.04828 * frame.width, y: frame.minY + 0.68225 * frame.height ), controlPoint2: CGPoint(x: frame.minX + 0.21694 * frame.width, y: frame.minY + 0.85855 * frame.height : oldLayer.position) animation.toValue = NSValue(cgPoint: newLayer.position)

    1K30发布于 2019-11-07
领券