Tag: cgfloat

将Int转换为CGFloat的结果为0.000000

我试图从数组中取Int值并将它们转换为CGFloat以便我可以从这些红色,绿色和蓝色值创buildUIColor 。 很简单,对吗? 我可以成功地从数组中获得Int值,但是当我尝试转换为CGFloat ,结果是0.000000。 为什么是这样? let colorArray = NSUserDefaults.standardUserDefaults().arrayForKey("colors") let redValue = colorArray[0] as Int let greenValue = colorArray[1] as Int let blueValue = colorArray[2] as Int NSLog("%i", redValue) //prints 255 NSLog("%i", greenValue) //prints 250 NSLog("%i", blueValue) //prints 150 let redFloat = CGFloat(redValue) / 255.0 let greenFloat = CGFloat(greenValue) / 255.0 let blueFloat = […]

在Swift中将Int更改为CGFloat以返回heightForRowAtIndexPath tableview函数

我相信我错过了一些非常简单的东西,但我却无法让它工作。 如果他们有同样的问题,我会试着更好地解释我正在做什么来帮助别人。 这是我的function: func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return (count * 40 + 75) as CGFloat } 上述function不起作用。 感谢我收到的帮助,我发现这是做到这一点的方法: func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return CGFloat(count * 40 + 75) } 谢谢!

在Swift中将CGFloat转换为NSNumber

我在Swift中有一个扩展,它包含了CGFloat的一些属性。 问题是,我不知道如何使用关联的对象将商店的CGFloat值作为NSNumber 这里是我没有工作,但它详细说明了我想要做的代码: var scaledFontSize: CGFloat { get { guard let fontSize = objc_getAssociatedObject(self, &AssociatedKeys.scaledFontSize) as? NSNumber else { //Set it let scaledFont:CGFloat = VGSizeValues.getValueFromValue(self.font.pointSize); //Fails here objc_setAssociatedObject(self,&AssociatedKeys.scaledFontSize, NSNumber( scaledFont),objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC) return scaledFont; } return CGFloat(fontSize.doubleValue); } } 有没有人可以解决这个问题?

在Objective-C中,是否使用CGFloat或带有后缀.f的性能差异?

我应该用Postfix f来编写CGFloat值吗? CGFloat fValue = 1.2; 与 CGFloat fValue = 1.2f; 我知道这个后缀定义了一个浮点值。 但是这是否有必要,是否有意义,使用这两者之间是否存在任何性能差异,或者这只是视觉呈现,所以你可以快速定义值types(例如在这种情况下浮动)?

replace“fabs”,“fmax”等以便在64位iOS设备上使用CGFloat

题 考虑这样的布局代码: CGFloat descriptionHeight = // height of a paragraph of text with zero or more words; CGFloat imageHeight = // height of an image; CGFloat yCoordinateOfSomeOtherView = fmax(descriptionHeight, imageHeight) + 5.0f; 第三行如何重写支持64位iOS设备? (当前的代码不考虑yCoordinateOfSomeOtherView是float还是double 。) 选项 几个选项(我不知道哪个是最好的): 1.定义我自己的macros #if defined(__LP64__) && __LP64__ #define cgfmax(x,y) fmaxf(x,y) #else #define cgfmax(x,y) fmax(x,y) #endif 我可以用cgfmax代替fmax 。 2.使用tgmath.h 这个从2011年的堆栈溢出答案build议用tgmath.hreplacetgmath.h 这将用一个对每个参数调用__typeof__函数replacefmax的实现,并根据参数types返回fmax或fmaxf […]

heightForRowAtIndexPath间歇性地崩溃

我有一个约30个活跃用户和500多个注册用户的应用程序,这个问题只发生在一个使用iPhone 6的9.2上。 从崩溃报告中我可以看到,她已经有60多起车祸,她曾经说过这个问题有时候可以,而不是其他的。 我在这里有相同的testing设备,没有问题发生。 我不能从织物的崩溃报告详细信息中得到很多,但崩溃发生在下面的方法和应用程序崩溃在这个方法的最后其他方面,我可以从她的问题的描述: func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { let bounds = UIScreen.mainScreen().bounds var screenWidth = bounds.size.width let screenHeight = bounds.size.height if indexPath.row == 0 { let font = UIFont(name: "Helvetica Neue", size: 17.0) let heightCalc = heightForView(self.postDescription!, font: font!, width: screenWidth – 32) if self.photoWidth != nil{ let imageAspectRatio […]

在数组中给出错误的Swift函数:'@lvalue $ T24'与'CGFloat'不一样

所以我写了一个低通加速度计函数来缓和加速度计的抖动。 我有一个CGFloat数组来表示数据,我想用这个函数来阻尼它: // Damps the gittery motion with a lowpass filter. func lowPass(vector:[CGFloat]) -> [CGFloat] { let blend:CGFloat = 0.2 // Smoothens out the data input. vector[0] = vector[0] * blend + lastVector[0] * (1 – blend) vector[1] = vector[1] * blend + lastVector[1] * (1 – blend) vector[2] = vector[2] * blend + lastVector[2] […]

二元运算符+不能应用于CGfloattypes的操作数

我遇到了与之前使用不同代码行相同的问题; 但这一次,我无法用上次的方法修复它: var Y : Int = 0 var X : Int = 0 @IBOutlet var ball : UIImageView! ball.center = CGPointMake(ball.center.x + X, ball.center.y + Y) 这是我得到的错误: 二元运算符+不能应用于CGfloattypes的操作数

使用CGSizeMake和CGSize有什么区别? 这个比那个好吗?

CGSize(width: 360, height: 480)和CGSizeMake(360, 480)似乎具有相同的效果。 一个人喜欢另一个? 有什么不同?

CGFloat添加错误?

我试图在我的程序中recursion地添加一些CGFloat值。 而我只是意识到,在一个特定的情况下,总生成是不正确的。 为了确保我的程序逻辑没有任何问题,我创build了一个简单的例子(见下面),并打印出相同的错误值。 CGFloat arr[3] = {34484000,512085280,143011440}; CGFloat sum = 0.0; sum = arr[0] + arr[1] + arr[2]; NSLog(@"%f",sum); int arr1[3] = {34484000,512085280,143011440}; int sum1 = 0.0; sum1 = arr1[0] + arr1[1] + arr1[2]; NSLog(@"%d",sum1); 第一个NSLog打印689580736.000000 …而正确的结果689580720.然而第二个NSLog打印正确的结果。 我不确定这是一个错误,还是我做错了什么。 谢谢,Murali