Swift, Alterar largura de UICollectionViewCell e UILabel (dentro da célula) programaticamente

Eu configurei a largura de uma célula (UICollectionViewCell) para ser igual à largura do UICollectionView e estou tentando fazer exatamente a mesma coisa com o UILabel incluído nessa célula. Acho que o código abaixo explica exatamente o que estou tentando alcançar. Então, eu li algumas perguntas aqui no SO e também alguns tutoriais, mas ainda não tenho certeza de como conseguir isso.

Em algumas perguntas, dizia-se sobre o usocollectionViewLayout mas estou realmente lutando para usá-lo dentro do meu código. Alguma ideia? Obrigado!

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    var cell = collectionView.dequeueReusableCellWithReuseIdentifier("myCell", forIndexPath: indexPath) as LocationViewCell
    cell.locationLabel.text = "Hello there!"

    // Set cell & label width to 100%
    let collectionViewWidth = self.collectionView.bounds.size.width
    cell.frame.size.width = collectionViewWidth // Works
    cell.locationLabel.frame.size.width = collectionViewWidth // Does NOT 
Atualização 1

Então eu adicionei o seguinte:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    // Set cell width to 100%
    let collectionViewWidth = self.collectionView.bounds.size.width
    return CGSize(width: collectionViewWidth, height: 35)
}

O que acontece é que, quando a visualização é carregada, a largura do UILabel ainda é pequena. Se eu for para outra visualização e depois retornar, será 100%. Então eu tenho que fazer algo noviewDidLoad() direito? Eu já estou usandoself.collectionView.reloadData() mas acho que é apenas para dados.

Atualização 2
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    var cell = collectionView.dequeueReusableCellWithReuseIdentifier("locationCell", forIndexPath: indexPath) as LocationViewCell
    cell.locationLabel.text = "Hello UILabel"

    // Set cell width to 100%
    let collectionViewWidth = self.collectionView.bounds.size.width
    cell.frame.size.width = collectionViewWidth
    cell.locationLabel.frame.size.width = collectionViewWidth

    return cell
}

questionAnswers(1)

yourAnswerToTheQuestion