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

时间:2015-03-17 22:20:24

标签: ios animation orientation drawrect

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

此代码可正常工作,直到设备方向发生变化。我所尝试的一切都在动画旋转开始之前调用drawRect。这意味着autoLayout尚未调整collectionView.frame和self.frame,并且生成的矩形是错误的。

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);

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

PS:考虑一下:https://stackoverflow.com/a/19505582/846780