ios - UITableViewCell 约束未更新

标签 ios objective-c uitableview constraints ios-autolayout

我有一个自定义的 UITableViewCell,里面有 UITextViewUICollectionViewUITableView。它们之间有 10 像素的间距。在某些情况下,我只有 UITextView,有时只有 Collection View 等。

当没有文本时 - 我必须将 UICollection View 向上移动 10 像素。如果我没有文本、tableView 和 collectionView,它的高度应该为零。

- (void)configureMiddleWrapperState
{
    self.middleWrapperHasNote = self.noteTextView.text.length > 0;
    self.noteTextViewTopConstraint.constant = self.middleWrapperHasNote ? 7.f : 0.f;
    self.staffWrapperTopConstraint.constant = self.middleWrapperHasStaff ? 7.f : 0.f;
    self.tagsWrapperTopConstraint.constant = self.middleWrapperHasTags ? 7.f : 0.f;
    BOOL middleWrapperHasAtleastOne = self.middleWrapperHasNote || self.middleWrapperHasStaff ||
    self.middleWrapperHasTags;
    self.middleWrapperLastTenPixelSpaceConstraint.constant = middleWrapperHasAtleastOne ? 7.f : 0.f;
    [self setNeedsUpdateConstraints];
}

- (void)layoutSubviews
{
    [super layoutSubviews];
    [self setExcludedPaths];
    [self configureMiddleWrapperState];
}

结果与预期不同: enter image description here而不是一行。 只有文本看起来像预期的那样。 When Only Text

只有当我多次上下滚动时,约束才会生效。

最佳答案

尝试添加

[self setNeedsLayout];

之后

[self setNeedsUpdateConstraints];

关于ios - UITableViewCell 约束未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41958884/

相关文章:

java - stringByEvaluatingJavascriptFromString(iOS 方法,Android 等效方法是什么?)

objective-c - 如何读取 OSX 的物理屏幕尺寸?

ios - 许多设备的按钮图像命名(视网膜和非视网膜)

uitableview - 无法快速将自定义单元格值传递给新的 viewController

ios - 如何不返回 UITableviewCell

mysql - iOS - 服务器数据库

ios - 读取wkwebview Console.log

iphone - 如果我在 iOS 5 中创建 UIPageViewController 应用程序,那么它会在 iPhone 3G 和 iPhone 4G 上运行吗?

ios - UITableViewCell 默认图像在延迟从 Web 服务加载图像时闪烁

ios - 更新 UITableView 内的 UIView 帧大小 - swift