草庐IT

iphone - 取 CGFloat 的绝对值

我该怎么做?我试过abs()但它只适用于整数。有内置的方法吗?CGFloatflo=-123;abs(flo)返回0 最佳答案 使用fabs()CGFloatf=-123.4f;CGFloatg=fabs(f);CGFloat在64位机器上定义为double,在32位机器上定义为float。如果您同时针对64位和32位,那么这个答案会变得更复杂,但仍然是正确的。您想使用fabs(),因为它适用于大于float的double数据类型。在32位上,将fabs()的返回值(它是一个double)分配给一个CGFloat(它是一个float

ios - 使用 CMMotionManager 测量倾斜角度

假设您将iPhone/iPad竖直放在面前,屏幕朝向您,纵向。您将设备倾斜到一侧,让屏幕面向您。您如何使用CMMotionManager测量静态倾斜角度?这似乎是一个应该有一个简单答案的简单问题,但我找不到任何不消失在四元数和旋转矩阵中的方法。谁能给我指出一个有效的例子? 最佳答案 看看重力:self.deviceQueue=[[NSOperationQueuealloc]init];self.motionManager=[[CMMotionManageralloc]init];self.motionManager.deviceMo

ios - 使用 CMMotionManager 测量倾斜角度

假设您将iPhone/iPad竖直放在面前,屏幕朝向您,纵向。您将设备倾斜到一侧,让屏幕面向您。您如何使用CMMotionManager测量静态倾斜角度?这似乎是一个应该有一个简单答案的简单问题,但我找不到任何不消失在四元数和旋转矩阵中的方法。谁能给我指出一个有效的例子? 最佳答案 看看重力:self.deviceQueue=[[NSOperationQueuealloc]init];self.motionManager=[[CMMotionManageralloc]init];self.motionManager.deviceMo

cocoa - 如何在 Swift 中为 setLineDash 制作 CGFloat 数组

我想用swift画一条虚线。像这样...varpath=NSBezierPath()path.moveToPoint(NSPoint(x:1,y:1))path.moveToPoint(NSPoint(x:4,y:4))letpattern:ConstUnsafePointer={1.0,1.0}//Notsurehowtowritethispath.setLineDash(pattern,count:2,phase:0.0)path.stroke()我的问题是如何制作CGFloats的c数组 最佳答案 CGFloats数组可以定义

cocoa - 如何在 Swift 中为 setLineDash 制作 CGFloat 数组

我想用swift画一条虚线。像这样...varpath=NSBezierPath()path.moveToPoint(NSPoint(x:1,y:1))path.moveToPoint(NSPoint(x:4,y:4))letpattern:ConstUnsafePointer={1.0,1.0}//Notsurehowtowritethispath.setLineDash(pattern,count:2,phase:0.0)path.stroke()我的问题是如何制作CGFloats的c数组 最佳答案 CGFloats数组可以定义

objective-c - 如何处理 Int 和 CGFloat 之间的操作?

在Objective-C中,我可以执行以下操作:Objective-C代码:CGFloatwidth=CGRectGetWidth(mView.bounds);CGFloattotal=width*[myArraycount];但在Swift中,它会引发错误:Couldnotfindanoverloadfor'*'thatacceptsthesuppliedarguments如何优雅地避免这种情况? 最佳答案 首先,让我们创建一些演示数据letarray:NSArray=["a","b","c"]//youcoulduseaSwif

objective-c - 如何处理 Int 和 CGFloat 之间的操作?

在Objective-C中,我可以执行以下操作:Objective-C代码:CGFloatwidth=CGRectGetWidth(mView.bounds);CGFloattotal=width*[myArraycount];但在Swift中,它会引发错误:Couldnotfindanoverloadfor'*'thatacceptsthesuppliedarguments如何优雅地避免这种情况? 最佳答案 首先,让我们创建一些演示数据letarray:NSArray=["a","b","c"]//youcoulduseaSwif

Swift 二元运算符 '+' 不能应用于两个 CGFloat 操作数

我正在用Swift编写一个函数来检测我点击的是哪个六边形。但是我遇到了一条特殊的错误消息,指出我无法添加两个CGFloat。无论我做了什么,例如将let更改为var,分别声明和分配,但没有用。我想肯定还有其他问题,但我找不到。代码如下:funcpointToCoordinate(position:CGPoint)->(Int,Int){vargridHeight=2*singleRadius/sqrt(CGFloat(3))*1.5vargridWidth=2*singleRadiusvarhalfWidth=singleRadiusvarrelativePosition=CGPoin

Swift 二元运算符 '+' 不能应用于两个 CGFloat 操作数

我正在用Swift编写一个函数来检测我点击的是哪个六边形。但是我遇到了一条特殊的错误消息,指出我无法添加两个CGFloat。无论我做了什么,例如将let更改为var,分别声明和分配,但没有用。我想肯定还有其他问题,但我找不到。代码如下:funcpointToCoordinate(position:CGPoint)->(Int,Int){vargridHeight=2*singleRadius/sqrt(CGFloat(3))*1.5vargridWidth=2*singleRadiusvarhalfWidth=singleRadiusvarrelativePosition=CGPoin

casting - Swift Double 不能转换为 CGFloat

我试图画一个简单的圆当我到达下面一行时我收到错误“DoubleisNotConvertabletoCGFloatunderthestartAngle=0.0path.addArcWithCenter(center,radius:radius,startAngle:0.0,endAngle:Float(M_PI)*2.0,clockwise:true)如何在Swift中“转换”0.0使其成为CGFloat?我写的完整函数:funcdrawCircle(){//Drawingcodevarbounds:CGRect=secondView.boundsvarcenter=CGPoint()c