我正在尝试各种方法,函数,扩展:这是我的问题。
我从后端API得到文本响应,它是一行文本,但是会有用于换行符的HTML标签。因此,一些长字符串应该看起来像项目符号要点或多个段落。另外,我还必须解析URL链接,电子邮件和电话号码,所以我想使用UITextView
我的问题:textView几乎不会显示多于几行,并且我必须上下滚动多次才能加载全文。有时圆角不是圆的。我需要3个圆角。
通常这很容易。但这真让我难过。
我尝试将滚动设置为false。我设置的约束太多了,无法计算。
我不想乞求,但我很高兴将一些KitKas邮寄给任何可以帮助的人!
这是我的cellForRowAt和我的细胞类
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let message = self.messages[indexPath.row]
let sending = message.from?.id == BotClient.shared.currentUser.id
switch sending {
case true:
// User Cell
let cell = tableView.dequeueReusableCell(withIdentifier: "UserCell", for: indexPath) as! UserCell
cell.transform = tableView.transform
cell.messageLabel.text = message.text
return cell
case false:
// Bot Cell
let cell = tableView.dequeueReusableCell(withIdentifier: "BotCell", for: indexPath) as! BotCell
cell.testLabel.text = message.text
cell.testLabel.layoutIfNeeded()
cell.transform = tableView.transform
return cell
}
}
}
// Bot Cell Class
class ReadMoreCell : UITableViewCell, UITextViewDelegate {
@IBOutlet weak var testLabel: EdgeInsetLabel!
override func awakeFromNib() {
super.awakeFromNib()
let bounds: CGRect = testLabel.bounds
let maskPath = UIBezierPath(roundedRect: bounds, byRoundingCorners: ([.topLeft, .topRight, .bottomRight]), cornerRadii: CGSize(width: 15.0, height: 15.0))
let maskLayer = CAShapeLayer()
maskLayer.frame = bounds
maskLayer.path = maskPath.cgPath
testLabel.layer.mask = maskLayer
testLabel.layer.masksToBounds = true
}
override func layoutSubviews() {
super.layoutSubviews()
}
override func prepareForReuse() {
super.prepareForReuse()
}
}
//用户单元类别 类UserTableViewCell:UITableViewCell {
static let reuseId = "UserCell"
@IBOutlet weak var messageView: UIView!
@IBOutlet weak var messageLabel: EdgeInsetLabel!
override func awakeFromNib() {
super.awakeFromNib()
let bounds: CGRect = messageLabel.bounds
let maskPath = UIBezierPath(roundedRect: bounds, byRoundingCorners: ([.topLeft, .topRight, .bottomLeft]), cornerRadii: CGSize(width: 20.0, height: 20.0))
let maskLayer = CAShapeLayer()
maskLayer.frame = bounds
maskLayer.path = maskPath.cgPath
messageLabel.layer.mask = maskLayer
messageLabel.layer.masksToBounds = true
messageLabel.layoutIfNeeded()
}
override func layoutSubviews() {
super.layoutSubviews()
// Do I put UI Configurations like border colors, and round corner stuff here ??
}
}