【发布时间】:2019-06-05 04:02:45
【问题描述】:
我需要显示横幅视图以显示消息,
现在消息的内容可能会有所不同,并且视图也应该根据UILabels 的内容调整大小。
UILabel 设置为Word Wrap,numberOfLines 设置为0
而相应的类文件是,
import UIKit
class ORABannerView: UIView {
@IBOutlet weak var bannerText: UILabel!
static func instantiate(message: String) -> ORABannerView {
let view: ORABannerView = initFromNib() ?? ORABannerView()
view.bannerText.text = message
return view
}
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func draw(_ rect: CGRect) {
super.draw(rect)
}
}
initFromNib 是作为 UIView 的扩展实现的,
extension UIView {
class func initFromNib<T: UIView>() -> T? {
guard let view = Bundle.main.loadNibNamed(String(describing: self), owner: nil, options: nil)?[0] as? T else {
return nil
}
return view
}
}
尝试在视图上使用 layoutIfNeeded(),但它对我不起作用。
任何建议将不胜感激。
【问题讨论】:
标签: ios swift uiview autolayout constraints