在UICollectionView上animation自动布局约束更改
继上一个问我问,我试图animationUICollectionView
(这是在例子中的UICollectionView
高度变化。 通过使用以下代码修改集合视图上的自动布局约束来触发高度更改:
- (IBAction)expandYellowBox:(id)sender { [UIView animateWithDuration:0.5 animations:^{ self.yellowBoxHeightConstraint.constant += 50; [self.view layoutIfNeeded]; }]; }
但是,当我调用[self.view layoutIfNeeded]
这会导致集合视图被重新加载,所以它闪烁显示给用户。 不过,我不希望收集视图重新加载,而只是为了animation的高度变化。 有没有办法避免-layoutIfNeeded
重新加载集合视图,或者另一种方法来animation约束高度变化,这不会调用具有重新加载集合视图的副作用的方法?
如果有人遇到这个问题,那是因为我实际上在animation块上面调用了[self.collectionView reloadData]
(并没有注意到!)。 看起来,调用-reloadData
和-layoutIfNeeded
会导致集合视图闪烁。 删除对-reloadData
的调用可以解决问题。
- 在UIView中有UIView和Labels的Autolayout标签
- iOS布局animation在GMSMapView拖动时忽略持续时间
- 如何使用自动布局调整固定宽度和高度的UIImageView
- 如何使用自动布局在代码中使用多行标签创build和添加UIButton?
- 在自动布局中查看中心UI元素
- UIScrollview Autolayout问题
- UITableViewCell四舍五入错误与NSAutoresizingMaskLayoutConstraint,但大小正确设置在故事板和heightForRowAtIndexPath:
- iOS Autolayout:在resize的父视图中发布UILabels
- 如何dynamic更改自动布局iOS中的字体大小?