踊る犬.netブログ (旧)

iOS7でのアニメーションの一時的な無効化方法

アニメーションが有効な時、一部のViewの変更だけをアニメーションさせたくない場合がよくあります。
この時、いままでは以下のようなコードで実現していました:

[CATransaction begin];
[CATransaction setDisableActions:YES];
view.frame = CGRectMake(...);
[CATransaction commit];

iOS 7では、これをブロックベースで書けます:

[UIView performWithoutAnimation:^{
    view.frame = CGRectMake(...);
}];

これは短くて覚えやすい。