我有一个表格视图应用程序(见图片。)一些单元格右侧的横幅是一个布尔值,用户在添加控制器中决定(由加号提示。)此横幅称为紧急我的代码中的图像。顶部标签称为主题标签,底部标签称为截止日期标签。
我遇到的问题是主题标签上的自动布局。在某些标签上,底部被切断,但在其他标签上却没有。似乎当有多条线时,会发生切断。自动布局约束如下所示。
这是我的viewDidLoad:
,我添加了自我调整单元格代码:
override func viewDidLoad() {
super.viewDidLoad()
let fetchRequest = NSFetchRequest(entityName: "Agenda")
let sortDescriptor = NSSortDescriptor(key: "subject", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
if let managedObjectContext = (UIApplication.sharedApplication().delegate as? AppDelegate)?.managedObjectContext {
fetchResultController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
fetchResultController.delegate = self
do {
try fetchResultController.performFetch()
content = fetchResultController.fetchedObjects as! [Agenda]
} catch {
print(error)
}
}
tableView.estimatedRowHeight = 90.0
tableView.rowHeight = UITableViewAutomaticDimension
}
答案 0 :(得分:0)
看起来您的单元格不够垂直,无法垂直裁剪您的顶部标签。
编辑:作者实际上正在研究自定义单元格,因此本答案的第一部分不是有效的解决方案。
你能做的是:
编辑: 您的单元格是自定义的,如果您更改紧急图像视图约束/大小,它可能来自您的Label没有更新其布局的问题。如果是这种情况,您可以尝试更改此UILabel子类的Label自定义类:
Objectice-C:
@implementation AutoLayoutLabel
- (void)layoutSubviews {
[self setNeedsUpdateConstraints];
[super layoutSubviews];
self.preferredMaxLayoutWidth = CGRectGetWidth(self.bounds);
}
@end
在 Swift 中,它会是:
import UIKit
class AutoLayoutLabel: UILabel {
override func layoutSubviews() {
self.setNeedsUpdateConstraints()
super.layoutSubviews()
self.preferredMaxLayoutWidth = CGRectGetWidth(self.bounds)
}
}
由于您无法发送您的项目,我们无法真正看到您的代码设置的限制,我上传了一个具有相同单元格设计的工作测试项目:On the go multiline cell Xcode project
将此Xcode项目中的内容重现为您的项目。
答案 1 :(得分:0)
Ok以下是基于多个标签行实现动态表高度的步骤。我在swift应用程序的Table视图中实现了这个功能。按照步骤操作:
为表视图实现这两个委托函数函数:
在您的故事板中,您需要这样做:
构建并验证。
让我知道它何时起作用!!!