3

I am sure that I am missing something really simple, but I just can't get it to work.

I will try to explain better what I am doing to try to help others if they have this same issue.

This was my function:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return (count * 40 + 75) as CGFloat
}

The above function doesn't work. Thanks to the help I received, I found that this is the way to do it:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return CGFloat(count * 40 + 75)
}

Thanks!

Unome
  • 6,750
  • 7
  • 45
  • 87
Nate4436271
  • 860
  • 1
  • 10
  • 21

2 Answers2

3

Yes, it is simple:

let i = 123 // an Int
let f = CGFloat(i) // a CGFloat

If you command-click on CGFloat then you'll see all its initializers:

init(_ value: Float)
init(_ value: Double)
// ... many more, and finally:
init(_ value: UInt)
init(_ value: Int)
Martin R
  • 529,903
  • 94
  • 1,240
  • 1,382
1

Swift 5, there is a handy constructor for this purpose, init(integerLiteral:)

let cgFloat = CGFloat(integerLiteral: intVar)
Evgeny Karkan
  • 8,782
  • 2
  • 32
  • 38