セルがあり、そのセルビュー内にテキストビューがあります。テキストビューでは、ボーダーボトムはEZSwiftExtensions
です。テーブルビューセルのスウィフトイオステキストビューが正しいサイズで生成されていません
問題は、最初の読み込み時に枠線が全幅ではなく、下にスクロールして枠線が上端までスクロールするときです。
どうしてですか?
するとアプリがロード:
下にスクロールして、トップに戻ってくる:
セルのXcode:
セルコード:
import UIKit
import EZSwiftExtensions
class JokeTableViewCell: UITableViewCell {
var item: Joke! {
didSet {
cellView.setCornerRadius(radius: 4)
hearthImg.image = UIImage(named: "HearthWhite")
starImg.image = UIImage(named: "StarWhite")
txtLabel.addBorderBottom(size: 1, color: UIColor.lightGrayColor())
setupCell()
}
}
@IBOutlet weak var cellView: UIView!
@IBOutlet weak var authorLabel: UILabel!
@IBOutlet weak var txtLabel: UILabel!
@IBOutlet weak var hearthImg: UIImageView!
@IBOutlet weak var likesLabel: UILabel!
@IBOutlet weak var starImg: UIImageView!
@IBOutlet weak var scoreLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
func setupCell() {
authorLabel.text = item.creator
if item.creator == "" {
authorLabel.text = "Aninomno"
}
txtLabel.text = item.text
if item.liked == true {
hearthImg.image = UIImage(named: "HearthRed")
}
if item.rated == true {
starImg.image = UIImage(named: "StarYellow")
}
likesLabel.text = item.likes.toString
scoreLabel.text = item.score.toString
}
}
常にフルサイズにする必要があります。
これが起こり得るいくつかの対処法があります。スクロールする前に 'textView'サイズが期待どおりであるかどうか確認しましたか?使用しない場合は、ビューデバッガを使用してチェックします。 – Jelly
長い文字列でテストしたので、全幅を表示しますが、境界線はまだ全幅ではありません。 –
私の推測では、autolayoutを使用しており、制約が反映されるようにビューが更新される前に線が描かれています。私はあなたが使用しているライブラリのバグだと思うので、あなたが使っている詳細(またはいくつかのコード)を共有することができます。 – Jelly