【发布时间】:2018-03-08 04:02:23
【问题描述】:
我正在尝试创建一个自定义视图,该视图由 UIView 之上的 UILabel 组成。这个想法是作为一个小的弹出消息,标签基本上与视图大小相同。但是,每当我尝试将此自定义视图(由屏幕截图中屏幕底部的小灰色框表示)添加到另一个视图时,我只能显示 UIView/深灰色背景,但不能显示标签。有人可以指出我正确的方向吗,因为我对为什么下面的代码不起作用感到有些困惑?谢谢。
编辑:我可能应该指出,如果我将 .zero 替换为 CGRect(x: 0, y: 0, height: 100, width: 50),我可以让标签以某种形式显示,但我会考虑到约束,认为将其设置为 .zero 就可以了吗?
import UIKit
class PopUp: UIView {
var label: UILabel!
var labelText: String!
init(frame: CGRect, text: String) {
super.init(frame: frame)
self.labelText = text
self.backgroundColor = .darkGray
self.label = UILabel(frame: .zero)
self.label.textColor = UIColor.white
self.label.text = self.labelText
self.label.font = UIFont(name: "Times New Roman", size: 14.0)
self.translatesAutoresizingMaskIntoConstraints = false // this should be "self.label.translatesAutoresizingMaskIntoConstraints"
self.addSubview(self.label)
self.bringSubview(toFront: self.label)
NSLayoutConstraint.activate([
self.label.topAnchor.constraint(equalTo: self.topAnchor),
self.label.bottomAnchor.constraint(equalTo: self.bottomAnchor),
self.label.leadingAnchor.constraint(equalTo: self.leadingAnchor),
self.label.trailingAnchor.constraint(equalTo: self.trailingAnchor)
])
}
required init?(coder aDecoder: NSCoder) {
fatalError()
}
}
【问题讨论】:
-
使用视图控制器而不是 UIView 子类,其呈现样式为 overcurrentcontext
-
我已回滚您的编辑。如果您解决了问题,请发布答案说明如何解决;这个问题应该只是一个问题。 (接受你自己的答案很好。)
-
添加了答案。看来我必须等两天才能接受自己的答案,所以我会确保这样做。
标签: ios swift uilabel constraints