最近,我遇到了Interface Builder无法解决的问题.我正在使用UICollectionViewController,每当我添加一个Cell时,它会立即显示一个橙色矩形(表示自动布局更新).更新帧/单元格不会改变任何内容.与橙色标记相关的警告显示"预期:高度= Y,实际:高度= X",其中Y 始终 精确为 X-100.也就是说:当我将自定义单元格高度设置为193时,它会显示"Expected:height = 93".无论我输入哪种尺寸,都会发生这种情况
这个问题是我对子视图及其约束有很多困难.例如,如果我添加一个带有约束的子视图以保持与单元格相同的高度,它将显示为93(预期高度),即使我的单元格应为193. Layouts也变得不可能.
我尝试添加一个新单元格,同样的问题.我尝试删除每个子视图并重新添加它们,没有.
任何想法都非常受欢迎.
非常感谢你!
在花了最后几个小时在网上搜索此问题后,我决定需要您的帮助。
问题类似于本主题:Javafx:Tableview header is notaligned with rows
那里没有提供答案,而且我认为我的情况略有不同:


我有一个正确设置的 TableView,其中包含重用的 CellFactories 和 CellValueFactories。在数据方面,一切都按我预期的方式 100% 运行。然而,一旦我用比我的视图可以显示的行数更多的行填充我的表,它自然开始显示一个垂直滚动条。从那一刻起(见第一个屏幕截图)列标题不再与列对齐。似乎正是滚动条的宽度扭曲了宽度分布(我使用 ConstraintResizePolicy 和一些固定宽度的列,其余列再次依赖计算的宽度,否则工作完美)。
一旦我用鼠标滚轮滚动,点击一个条目,标签进入焦点或调整窗口/视图的大小,标题就会卡入到位(参见第二个屏幕截图)。
根据开头发布的主题,我认为这是一个错误,因此我不仅要寻找解决方案(可能不存在),还要寻找解决方法。我试过:
我知道并非所有这些都有意义,但我仍然尝试过,但没有一个使列标题与应用程序启动时的列一致。
欢迎提出任何建议。我不认为共享代码在这里有帮助,但请询问您是否需要特定的东西。该视图是使用 SceneBuilder 8 构建的,由一个 AnchorPane、一个位于中间的 TableView 和 6 个 TableColumn 组成,仅此而已。
非常感谢!
我在 Interface Builder 中精心布置了一个 UILabel,并具有适当的高度和宽度限制。行数设置为 4。换行设置为自动换行。文本为“已检查”。字体非常大,因此只适合“CHECKE”,而“D”位于第二行。写“Checked”而不是“CHECKED”可以让字体缩小(按预期),以便整个单词适合。但是(文本是用户给定的,并且可以预期用户写的是完全大写的单词)具有大写单词的标签不会按预期破坏它/缩小字体。
您对我可能错过的内容有什么建议吗?将单词大写(因此只有第一个字母大写)确实有效,但不是客户想要的。
更新的问题
该问题似乎与大写或小写文本无关。我的问题可以通过回答以下问题来解决:
如何使(最好仅在 Interface Builder 的帮助下)UILabel 文本缩小,尝试在所有可用行中容纳完整单词,而不将文本换行到单词中间?
避免:
one
CHECKE
D two
Run Code Online (Sandbox Code Playgroud)
非常感谢!