UITableViewCell和CALayer的自动旋转问题

时间:2012-04-26 12:59:13

标签: ios uiview uitableview core-animation calayer

我有一个UITableViewCell子类,backgroundView设置为我自己的UIView对象。此UIView对象包含三个CALayer图层。我实施了- (void)layoutSubviews,我更新了所有CALayer图层。问题是自转。

当我从横向模式旋转到纵向模式时,存在这个美容问题:

在动画期间,我的所有CALayer图层都与纵向模式一样窄。

看来这家伙是对的:

  

在方向更改期间调用layoutSubviews时,视图的边界已经设置为旋转结束时的结果。

来源:How to achieve smooth animation when using single-step rotation / How do I get the new frame size at the start of rotation?

那么,我应该在哪里更新我的图层以实现正确的自动旋转?视图已经旋转它们,所以我想没有必要做任何自定义动画,只需调整大小。正确?

1 个答案:

答案 0 :(得分:2)

想出来:

  1. 子类CALayer +将子图层添加到其中
  2. CALayer的{​​{1}}方法
  3. 中实施子图层的大小调整
  4. 子类- (void)layoutSublayers +覆盖UIView

    + (Class)layerClass
  5. 将子类+ (Class)layerClass { return [SubclassedCALayer class]; } 设为UIView的{​​{1}}