UITableViewCell 的 nib 文件中的自动布局
Posted
技术标签:
【中文标题】UITableViewCell 的 nib 文件中的自动布局【英文标题】:AutoLayout in nib file for UITableViewCell 【发布时间】:2017-04-24 14:40:08 【问题描述】:我正在尝试在 .xib 中重新创建我的 UITableViewCell,以便可以在多个视图中重复使用它。无论我做什么,在加载我的 .xib 时,我似乎都无法让 AutoLayout 完成它的工作。我尝试设置 translatesAutoresizingMaskIntoConstraints = false 当我对单元进行出队时。关于我可能做错的任何想法?
谢谢!
【问题讨论】:
你应该添加一些代码来展示你到目前为止所做的事情。 为什么需要 xib 才能重用单元格?只需创建一个自定义的UITableViewCell
子类,您就可以随心所欲地重复使用它。
@maddy - 我需要在多个视图中重用 UITableViewCell 布局。我不喜欢在代码中设置我的视图,而是使用设计器。我肯定有 UITableViewCell 的自定义子类,但我想将它与我在 .xib 文件中的布局配对
@James Scott 您是否以编程方式设置约束?
您是否在从 Nib 初始化后向视图添加约束?例如 myView = UNIIB(...) 然后在 myView 上使用自动布局,如果是这样,您确实需要在 myView 上的 awakeFromNib 中使用 translatesAutoresizingMaskIntoConstraints = false
【参考方案1】:
好的,我想我终于弄明白了。这与我在网上阅读的其他建议背道而驰,但这就是我所做的。我基本上有两个问题:
1) 我的垂直约束一直没有被完美地定义。就我而言,我有一个垂直堆栈视图,其中嵌入了其他堆栈视图,但我的主垂直堆栈视图没有底部约束。添加底部约束修复它。
2) 另外:在设置 translatesAutoresizingMaskIntoConstraints = false 使其正确自动布局之前,我遇到了 .xib(笔尖)的问题。在我的情况下,它调用这个是造成问题的。删除此设置并确保我的约束一直被定义似乎很有效。
【讨论】:
以上是关于UITableViewCell 的 nib 文件中的自动布局的主要内容,如果未能解决你的问题,请参考以下文章
UITableViewCell 的 nib 文件中的自动布局
为啥 nib 文件中的 UITableViewCell(加载并添加到堆栈)在 viewDidAppear 中为零,但在 viewDidLoad 中没问题?
以编程方式创建 UITableViewCell 或从 nib 加载是不是更快?