-1

logoview という UIView があります。

[logoview setCenter:CGPointMake(100,100)];
    [UIView animateWithDuration:4
                          delay:1
                        options: (UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
                     animations:^{
                         [logoview setCenter:CGPointMake(0, 3232)];


                     }
                     completion:^(BOOL finished) {
                     }];

上記のコードでアニメーション化しようとしています。その結果、オブジェクトは毎回左上隅から中心に移動します。アニメーション セクションでどんなコードを使用しても.... 絵コンテを使用しています。

私の最終目標は、ロゴを中央に表示することです。次に、Skype や Facebook のログインのようにロゴを上に上げて、ログイン フィールドを表示します。しかし、私がどんな価値を置いたとしても

[logoview setCenter:CGPointMake(0, 3232)];

中心に行くだけです。

私も試しました:

[UIView animateWithDuration:4
                          delay:1
                        options: (UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
                     animations:^{
                         [logoview setTransform: CGAffineTransformMakeTranslation(0, -80)];


                     }
                     completion:^(BOOL finished) {
                     }];

これはロゴビューを持ち上げるのに役立ちますが、かなり下にオフセットします...中心から外れます。

全体.m

//
//  ViewController.m
//  Couple
//
//  Created by Michael Latman on 4/1/13.
//  Copyright (c) 2013 Michael Latman. All rights reserved.
//

#import "ViewController.h"
#import <QuartzCore/QuartzCore.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    //Rounded corners!
    self.view.layer.cornerRadius = 10;
    self.view.layer.masksToBounds = YES;
    //lol.layer.cornerRadius = 90;
    //lol.layer.masksToBounds = YES;
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    //[logoview setCenter:CGPointMake(100,100)];
    [UIView animateWithDuration:4
                          delay:1
                        options: (UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
                     animations:^{

                         [logoview setCenter:CGPointMake(0, 1)];


                     }
                     completion:^(BOOL finished) {
                     }];


}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
4

2 に答える 2

3

さて、1 つの問題は、それviewDidLoadが早すぎることです。少なくとも まで待ちたいと思いviewDidAppearます。あなたのインターフェースはまだ実際のサイズを持っていませんviewDidLoad. 起こったことは、View Controllerビューがあることだけです。ビューは、ユーザーに表示されるどころか、インターフェースにもまだありません。

于 2013-04-01T21:21:48.293 に答える
0

このようなもの?

[UIView animateWithDuration:4.0 delay:1.0 options:(UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction) animations:^{
    [logoview setCenter:CGPointMake(logoview.center.x, logoview.center.y - 80.0)];
} completion:nil];
于 2013-04-01T21:18:53.650 に答える