我正在尝试使用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);
任何建议都将不胜感激。
答案 0 :(得分:1)
在你的自定义UIView覆盖那里layoutSubviews
,只有在需要时以及所有变量(方向,大小等)时系统才会为你调用