方向旋转动画完成后如何调用drawRect

How to call drawRect after an orientation rotation animation is completed

我正在尝试使用 drawRect 在另一个视图(下面代码中的 self)中包含的 collectionView 下面的 space 中使用两个视图的框架来定义矩形来绘制一个矩形。

在设备方向改变之前,此代码工作正常。在动画旋转开始之前,我尝试过的所有方法都会调用 drawRect。这意味着 collectionView.frame 和 self.frame 尚未被 autoLayout 调整,结果矩形是错误的。

CGRect frame = self.collectionViwOutlet.frame;
CGFloat x = frame.origin.x;
CGFloat y = frame.origin.y + frame.size.height + 8;
CGFloat w = frame.size.width;
CGFloat h = self.frame.origin.y + self.frame.size.height - y - 8;
CGRect drawableRect = CGRectMake(x, y, w, h);

如有任何建议,我们将不胜感激。

在您的自定义 UIView 覆盖那里 layoutSubviews,只有在需要时以及所有变量(方向、大小等)出现时,系统才会为您调用

PS.: 考虑一下: