如何正确扩展从xib加载的UIView并使用带有约束的UIlabels,UIImageView等。
以下是我如何扩展它的代码:
[UIView animateWithDuration:aDuration
delay:aDelay
options:UIViewAnimationOptionCurveEaseOut
animations:^{
aCardView.transform = CGAffineTransformMakeScale(aZoom, aZoom);
} completion:^(BOOL finished) {
}];
结果我收到警告和UIImageView内部错误
但是,当我缩放从UIViewController加载的相同UIView时,它运行良好并且没有警告。
以下是我收到的警告:
"<NSAutoresizingMaskLayoutConstraint:0x13aeca670 h=-&- v=-&- FFCardView:0x13af8e840.width == FFCardsCollectionView:0x13700a380.width - 129>",
"<NSLayoutConstraint:0x13705adc0 FFCardsCollectionView:0x13700a380.trailing == UITableView:0x1360a6400.trailing>",
"<NSLayoutConstraint:0x13706bc90 FFCardsCollectionView:0x13700a380.leading == UITableView:0x1360a6400.leading>",
"<NSLayoutConstraint:0x13705c460 H:|-(0)-[UITableView:0x1360a6400] (Names: '|':UIView:0x135f4dfb0 )>",
"<NSLayoutConstraint:0x13705c4b0 H:[UITableView:0x1360a6400]-(0)-| (Names: '|':UIView:0x135f4dfb0 )>",
"<NSLayoutConstraint:0x13ade45d0 H:[UIImageView:0x13af0ac90(300)]>",
"<NSLayoutConstraint:0x13af9a0f0 H:|-(0)-[UIImageView:0x13af0ac90] (Names: '|':FFCardView:0x13af8e840 )>",
"<NSLayoutConstraint:0x13af9a140 H:[UIImageView:0x13af0ac90]-(0)-| (Names: '|':FFCardView:0x13af8e840 )>",
"<NSLayoutConstraint:0x135fe6f00 'UIView-Encapsulated-Layout-Width' H:[UIView:0x135f4dfb0(375)]>"
答案 0 :(得分:0)
我从您提供的警告中看到的问题是您尝试将视图扩展到与约束冲突的大小。例如,您有一个ImageView
,其前导和尾随边距为300 width
。如果您尝试将视图缩放到宽度小于300
的大小,则约束将会中断,布局也会中断。当缩放始终考虑到视图具有的约束时,因为它们不随视图缩放。您可以在缩放时修改约束,这是另一种解决方案。这取决于你的需要。