2011年9月26日月曜日

ViewControllerの状態変化関数

ViewControllerに関しては、読み込みの状態などにより、
呼び出されるメソッドが異なるようだ。

ViewDidLoad:
    読み込みが完了
ViewDidUnload:
    読み込みがメモリ不足などで終了
ViewWillAppear:
    表示されるタイミング
ViewDidAppear:
    表示されたあと
ViewWillDisappear:
    非表示の時
ViewDidDisappear:
    非表示になった後

状況に応じて使う事でメモリの節約などに役立てたい

2011年9月25日日曜日

アニメーションの設定の方法(前とは別の方法)

前にアニメーションの方法を示したが、
下記のような形式でもアニメーションを実行できるようだ。


-(IBAction)doAnime:(id)sender{
    _imageViwe.alpha = 1.0;
    _imageView.transform=CGAffineTransformMakeScale(1.0,1.0);
    [UIVIEW animateWidthDuration:1.0
        animations:^{
            _imageView.alpha = 0.3;
            _imageView.transform = CGAffineTransformMakeScale(0.4,0.4);
    ]
}

利用できる値に関しては、前にアニメーションを作成した時と同様のようです。

2011年9月24日土曜日

スクロールビューを利用します。UIScrollView

スクロールビューを利用します。

中にコンテンツをはみ出すように設置をすれば、指でのスクロールなどで、コンテンツを見る事ができます。


UIScrollView *scrollView = [[UIScrollView alloc]init];

見える領域:frame
scrollView.frame = self.view.bounds;

実際のコンテンツの領域
scrollView.contentSize = CGSizeMake(self.view.frame.size.width*4,self.view.frame.size.height);


ページング機能ですが、ページ毎にコンテンツが止まる形で移動できるか、
もしくは、ページの境目なく常に滑らかにコンテンツが見れるようにするか。

scrollView.pagingEnabled = YES;

[self.view addSubview:scrollView];

[scrollView release];


中にコンテンツを追加する場合は下記のようにします。
[scrollView addSubview:****];

2011年9月23日金曜日

Tabを利用したインターフェースの切り替え

Tabを利用したインターフェースの切り替え

アプリが別のクラスでできているので、
各画面の通信の仕組みを追加してあげる必要があります。

AppDelegateの中にプロパティを持つ事でグローバル変数として利用ができる。

@interfaceの中に、
NSInteger _count;

と設定をして、
また、propertyとして、


@property(nonatomic,assign)NSInteger _count;

と言う形で定義をしておく必要がある。

また、外部からもアクセスができるように
@implementationの次の行に
@synthesize _count;
に追加をします。

これでpublicとして値が取得できるようになります。


外部からアクセスができるようになったので、
次にこのクラスの変数に外部からアクセスをする方法を考えます。

#import "sampleAppDelegate.h";

と記載をする事で、このクラスをインポートできます。
上記のクラスで何かインスタンスを作成する。

sampleAppDelegate *appDelegate = (sampleAppDelegate *)[[UIApplication sharedApplication]delegate];
である。

ここで作成したappDelegateに関しては、変数が設定してあるので、

appDelegate._count

などで値を取得もしくは、代入が可能である。

2011年9月22日木曜日

画面の切り替えでプロパティの受け渡しを勉強する。UtilityApplication

画面の切り替えでプロパティの受け渡しを勉強する。

■UtilityApplication(表裏が切り替わるアプリ)で、プロジェクトを作成。

MainViewとFlipsideViewで切り替わります。

FlipsideViewで設定した値をMainViewに持ってきてみます。


FlipsideViewで文字要素を作成する。

.hファイルで、文字要素をinterfaceの中で作成
NSString *_str;
@property(nonatomic,retain)NSString *_str;

.mファイルで、
@implementation FlipsideViewControllerの後ろに
@synthesize _str;

を記載。

このファイルから値を送る場合に


-(IBAction)showinfo:(id)sender{

FlipsideViewController _controller = [[FlipsideViewController alloc]
initWithNibName:@"Flipsideiew"
bundle:nil];

controller.delegate = self;
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
//下記の値で、FlipSideViewの変数_strを取得する事ができるようになった。
controller._str

[controller release];
}

2011年9月21日水曜日

タイマーの機能を使ってみる。

タイマーの機能を使ってみる。

NSTimer *_timer = [NSTimer
scheduledTimerWidthTimeInterval:3,
target:self,
selector:@selector(func:),
userInfo:nil,
repeats:YES];

上記は3秒毎に_funcを実行する。

2011年9月20日火曜日

UIViewの機能でアニメーションを行う。

UIViewの機能でアニメーションを行う。

ページの中で位置を移動したり、透過度を変更して
フェードインをするなどの動作を行う動作を行う。

step1
部分の初期状態の設定

中央の位置を決める
_iv.center = CGPointMake(x,y)

大きさの設定
_iv.rect = CGRectMake(x,y,width,height);

回転角度の設定
_iv.transform = CGAffineTransformMakeRotation(30 * 2*m_PI/360);

透明度
_iv.alpha = 0.5;

step2アニメーションの設定をする。

開始は
[UIView beginAnimations:nil context:nil];

アニメーションの秒数の設定は
[UIView setAnimationRepeatCount:3]
※0だと無限に繰り返す

開始までの時間
[UIView setAnimationDelay:3];

イージング設定
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
ゆっくり→はやく→ゆっくり:UIViewAnimationCurveEaseInOut
ゆっくり→はやく:UIViewAnimationCurveEaseIn
はやく→ゆっくり:UIViewAnimationCurveEaseOut
一定の速度:UIViewAnimationCurveEaseLiner
の4種類が基本


アニメーションの組み込みの流れ、
//初期設定
_iv.center = CGPointMake(20,20);

//宣言
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2];

//結果
_iv.center =  CGPointMake(50,100);

//出力
[UIView commitAnimations];