Swift ios 表格视图单元格中的文本视图未以正确的大小生成
Swift ios textview in tableview cell not generated in correct size
我有单元格,在那个单元格视图中有文本视图。在 textview 上,边框底部带有 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
}
}
我需要它始终是全角。
addBorderBottom
的实现不是很好。您可以覆盖 layoutSubviews
并在那里使用 addBorderBottom
,它应该可以工作。然而,该方法被多次调用,您最终将有多个边框一个接一个地堆叠。
您可以通过使用高度为 1px 的 UIView
作为子视图和一些边距限制来实现自己的边框,我认为这是最简单的解决方案。
我有单元格,在那个单元格视图中有文本视图。在 textview 上,边框底部带有 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
}
}
我需要它始终是全角。
addBorderBottom
的实现不是很好。您可以覆盖 layoutSubviews
并在那里使用 addBorderBottom
,它应该可以工作。然而,该方法被多次调用,您最终将有多个边框一个接一个地堆叠。
您可以通过使用高度为 1px 的 UIView
作为子视图和一些边距限制来实现自己的边框,我认为这是最简单的解决方案。