アプリのチュートリアル画面を考えるのって大変ですよね。
何ができるのか、どんな嬉しい事があるのかを、端的に伝えなければなりません。
そこで、参考になりそうなチュートリアルのスクリーンショット集があれば便利ですよね。
apptutorial というサイトは、様々なiOSアプリのチュートリアルのスクリーンショットを集めたサイトです。
これを見ながらイメージを膨らませると、いいアイデアが出そうですね!!
アプリのチュートリアル画面を考えるのって大変ですよね。
何ができるのか、どんな嬉しい事があるのかを、端的に伝えなければなりません。
そこで、参考になりそうなチュートリアルのスクリーンショット集があれば便利ですよね。
apptutorial というサイトは、様々なiOSアプリのチュートリアルのスクリーンショットを集めたサイトです。
これを見ながらイメージを膨らませると、いいアイデアが出そうですね!!
tweetbot 3では、モーダルビューの表示方法が下記画像のように凝っている。
ツイートの長押しでアクションメニューが表示される際に、直前の画面が後ろに下がりぼかしがかかる。
メニューは、それにオーバーレイされて表示される。
これ、チョーかっこいいので真似してみた。
こちらが、真似したもの。完全に再現は出来てないけど、満足レベル。
GitHubにてソースを取得できます: NRBlurryStepOutAnimatedTransitioning
NRBlurryStepOutAnimatedTransitioning.h,m
をプロジェクトに追加します。
あなたのViewControllerにUIViewControllerTransitioningDelegateプロトコルを追加:
#!objectivec
@interface NRPresentedViewController : UIViewController<uiviewcontrollertransitioningdelegate>
@end
そのViewControllerクラスに以下のような実装を加えます:
#!objectivec
#import "NRBlurryStepOutAnimatedTransitioning.h"
-(void)showNewController;
{
UIViewController* vc = [[YourModalViewController alloc] init];
vc.transitioningDelegate = self;
[self presentViewController:vc animated:YES completion:NULL];
}
#pragma mark - UIViewControllerTransitioningDelegate
- (id<uiviewcontrolleranimatedtransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source
{
return [[NRBlurryStepOutAnimatedTransitioning alloc] initWithPresenting:YES];
}
- (id</uiviewcontrolleranimatedtransitioning><uiviewcontrolleranimatedtransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed
{
return [[NRBlurryStepOutAnimatedTransitioning alloc] initWithPresenting:NO];
}
あとは -showNewController
を好きな時に呼び出すだけ。
簡単!
アニメーションが有効な時、一部のViewの変更だけをアニメーションさせたくない場合がよくあります。
この時、いままでは以下のようなコードで実現していました:
[CATransaction begin];
[CATransaction setDisableActions:YES];
view.frame = CGRectMake(...);
[CATransaction commit];
iOS 7では、これをブロックベースで書けます:
[UIView performWithoutAnimation:^{
view.frame = CGRectMake(...);
}];
これは短くて覚えやすい。