我正在开发一个显示通知的应用程序,允许用户发布评论和编辑通知,并查看通知的评论。
为此,我有3个原型单元,分别称为“活动”,“控制”和“注释”单元。我的前两个Active和Control外观和在所有设备上自动调整大小的效果都很好。但是,注释单元在Plus大小的iOS设备(不包括iPad)上缩小到无法读取的大小。
注释单元在堆栈视图中仅具有3个大小和颜色略有不同的标签。这是在Swift 4上。
发生这种情况的设备列表: 6 +,6s +,7 +,8 +,X,Xs,Xs Max
上面显示的单元格在iPhone XR上是预期的,在Xs Max上是意外的
我尝试编辑压缩和拥抱规则,尝试使用约束来强制高度(从技术上讲这是可行的,但是它破坏了外观并引发了警告)。
func numberOfSections(in tableView: UITableView) -> Int {
if activeEvents.count == 0 {
self.tableView.isHidden = true
self.activityIndicator.isHidden = false
self.activityLabel.isHidden = false
self.activityIndicator.startAnimating()
} else {
self.tableView.isHidden = false
self.activityIndicator.isHidden = true
self.activityLabel.isHidden = true
self.activityIndicator.stopAnimating()
}
return activeEvents.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if activeEvents[section].expanded {
return activeEvents[section].comments.count + 2
} else {
return 1
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.row == 0 {
let activeEvent = activeEvents[indexPath.section]
let cell = tableView.dequeueReusableCell(withIdentifier: "activeCell") as! ActiveCell
cell.selectionStyle = .none
cell.setCell(active: activeEvent)
return cell
} else if indexPath.row == 1 {
let activeEvent = activeEvents[indexPath.section]
let cell = tableView.dequeueReusableCell(withIdentifier: "controlCell") as! ControlCell
cell.setNoti(active: activeEvent)
cell.selectionStyle = .none
cell.delegate = self
cell.vc = self
return cell
} else {
let activeEvent = activeEvents[indexPath.section]
let activeComment = activeEvent.comments[indexPath.row - 2]
let cell = tableView.dequeueReusableCell(withIdentifier: "commentCell") as! CommentCell
cell.setCell(comment: activeComment)
return cell
}
}
答案 0 :(得分:0)
您可以做的一件事是在您的单元格中添加一个stackView,然后在该stackView中添加文本标签,只需将所有内容固定在边缘,并且不要在两个元素中都设置高度限制,这应该会自动调整单元格,在您的代码中也看不到它,但是我假设您正在tableView.rowHeight = UITableViewAutomaticDimension
viewdidload()
您只需要检查约束即可,正如我所说的那样,要使自动尺寸标注正常工作,您无需在像元上设置高度约束,这是对您有用的链接raywenderlich.com/8549-self-sizing- table-view-cells