私はカスタムUITableViewCell
を持っていますが、正常に動作しましたが、xcode 8にアップグレードしましたが、Swift 2.3をまだ使用していて、それが起こり始めると100%確信していません。UITableViewCellは正しく初期設定されていません
私はセルを構成しています。セルを構成するには、ラベルを円形にしてその内部に名前を付けます。しかし、画面が最初の円形ラベルが欠落している、ロードするとき
:それは次のようになります。私はtableViewを下にスクロールし、行が画面を離れる場合、私はスクロールし、再びフォーカスになるラベルが表示されます。付属品と同じですが、クリックして行を編集してから円のラベルを返すと、ラベルが生成されます。なぜ初期の負荷で動かないのですか?ここで
はUITableViewCellのカスタムコードです:
func circleLabels(label: UILabel, hex: String){
label.layer.cornerRadius = label.frame.size.width/2
label.layer.masksToBounds = true
}
func configureForPlayer(player: Player) {
playerName.text = player.name
jerseyLabel.text = String(player.jersey)
circleLabels(jerseyLabel, hex: "#6470FF")
}
CellForRowAtIndexPath
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("PlayerCell", forIndexPath: indexPath) as! PlayerCell
let player = fetchedResultsController.objectAtIndexPath(indexPath) as! Player
cell.configureForPlayer(player)
return cell
}
'cellForRowAtIndexPath'メソッドのコードを追加できますか? – Marcio
@Marcioもちろん、私は追加しました。なぜそれが最初にそれをやめたのか分かりません – Jonnny
私は 'circleLabels'が初めて呼び出されたときに' label.frame'がまだ設定されていないと考えています。描画され、 'label.frame'が実際のサイズを持つと、コードは期待どおりに動作します。私が 'label.frame.size.width/2'の代わりに定数を置くのであれば、問題を修正するべきです。 – Marcio