Jonnny Jonnny - 5 months ago 15
Swift Question

UILabel was circular, now has become eliptical

I was using the following code in swift:

label.layer.cornerRadius = CGRectGetWidth(label.frame) / 2
label.layer.masksToBounds = true


This worked well, but I then made my row height taller, it was 44 and then I made it 66 tall. Now the circular label is elliptical.
enter image description here

I notice that when I make
maskToBounds
is false I can see the label's background is more of a rectangle. It's wide and not as tall as the label is even though it's dimensions are set to be square. What am I doing wrong?

enter image description here

Updated
Here are my constraints:
enter image description here

Within
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
I am calling a function called Configure cell which takes a UITableViewCell and just updates the text.

func configureTextForCell(cell: UITableViewCell, withPlayer player: Player){
let jerseyLabel = cell.viewWithTag(3000) as! UILabel
jerseyLabel.text = String(player.jerseyNumber)
circleLabels(jerseyLabel, hex: "#6470FF")

}


CircleLabels()
is like this:

func circleLabels(label: UILabel, hex: String){
label.layer.cornerRadius = label.frame.size.width/2
label.layer.masksToBounds = true
}

Sam Sam
Answer

It seems to be an issue with when the call is made compared to when the cell is laid out. An easy fix is to just make the cell the same size in both the storyboard and in code

self.tableView.rowHeight 

or in the delegate function)

Comments