Ond*_*rej 12 xcode objective-c ios autolayout uicollectionview
我有自动布局的问题,控制台报告我在单元格中的图像视图的问题:
RefreshCatalogue[31754:16177989] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x7fa98103b740 V:[UIImageView:0x7fa9810375d0]-(0)-| (Names: '|':UIView:0x7fa9810371d0 )>",
"<NSLayoutConstraint:0x7fa98103b7e0 V:|-(0)-[UIImageView:0x7fa9810375d0] (Names: '|':UIView:0x7fa9810371d0 )>",
"<NSLayoutConstraint:0x7fa98103b8d0 UIImageView:0x7fa9810375d0.centerY == UIImageView:0x7fa981037490.centerY>",
"<NSLayoutConstraint:0x7fa98103ba60 UIImageView:0x7fa981037490.top == UIView:0x7fa9810371d0.topMargin + 71>",
"<NSAutoresizingMaskLayoutConstraint:0x7fa980d44a10 h=--& v=--& V:[UIView:0x7fa9810371d0(50)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7fa98103b8d0 UIImageView:0x7fa9810375d0.centerY == UIImageView:0x7fa981037490.centerY>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
Run Code Online (Sandbox Code Playgroud)
问题是,如果我这样做:
[self.collectionView reloadItemsAtIndexPaths:@[indexPath]];
Run Code Online (Sandbox Code Playgroud)
即使图像视图似乎具有正确的帧也没有显示,图像属性被设置.如果我重新加载整个集合视图:
[self.collectionView reloadData];
Run Code Online (Sandbox Code Playgroud)
错误仍然存在,但图像显示.这里的代码是开放的,任何人都有兴趣看看:https: //github.com/Ridiculous-Innovations/RefreshCatalogue
此外,故事板中的所有约束似乎都是蓝色的.知道可能导致问题的原因吗?
编辑:不用说所有元素,包括图像视图都在正确的位置(我做了调试帧和设置随机颜色)但图像直到刷新才显示...有时单元格根本不显示
您遇到 UIImageView:0x7fa981037490.top == UIView:0x7fa9810371d0.topMargin + 71 和父框架高度为 0 的问题(因此 imageview 高度必须为负数,但这是不允许的),就像调用 dequeueReusableCell 方法之后一样。这种情况的可能解决方法是将嵌套视图中最底部约束的优先级从 1000 更改为 999(垂直空间 - CatalogueHeaderCell - 图像视图和垂直空间 - CatalogueCell - 信息视图)。
归档时间: |
|
查看次数: |
813 次 |
最近记录: |