我想在代码中添加一个带有tableview的视图。 我在故事板中定义视图,如图像中所示。
在我的视图控制器中,我使用以下代码设置位置和大小。
override func viewDidLoad() {
super.viewDidLoad()
// bunch of non-related code
timeTableView.delegate = self
timeTableView.dataSource = self
timeTableView.rowHeight = UITableViewAutomaticDimension
timeTableView.estimatedRowHeight = 32
timeChooser.translatesAutoresizingMaskIntoConstraints=false
}
@IBAction func onTimeLabelPressed(_ sender: AnyObject){
view.addSubview(timeChooser)
let topConstraint = timeChooser.topAnchor.constraint(equalTo: viewdayTime.bottomAnchor)
let leftConstraint = timeChooser.leftAnchor.constraint(equalTo: viewdayTime.leftAnchor)
//let heightConstraint = timeChooser.heightAnchor.constraint(greaterThanOrEqualToConstant: 128)
//let widthConstraint = timeChooser.widthAnchor.constraint(lessThanOrEqualTo: viewdayTime.widthAnchor)
NSLayoutConstraint.activate([topConstraint,leftConstraint, /*heightConstraint, widthconstraint*/])
view.layoutIfNeeded()
timeChooser.alpha=0
UIView.animate(withDuration: 0.2){
self.timeChooser.alpha=1.0}
}
onTimeLabelPressed函数使视图显示在标签下面和左边对齐。
问题是只要行
,tableview就不会滚动或响应timeChooser.translatesAutoresizingMaskIntoConstraints =假
存在。删除它会破坏定位约束,但tableview表现正常。
有人有什么想法吗?没有找到任何描述我目击行为的问题。
答案 0 :(得分:0)
您需要提供timeChooser
个约束来建立width
和height
。最好设置right
和bottom
约束。
let rightConstraint = timeChooser.rightAnchor.constraint(equalTo: view.rightAnchor)
let bottomConstraint = timeChooser.bottomAnchor.constraint(equalTo: view.bottomAnchor)