開発ブログ

株式会社Nextatのスタッフがお送りする技術コラムメインのブログ。

電話でのお問合わせ 075-744-6842 ([月]-[金] 10:00〜17:00)

  1. top >
  2. 開発ブログ >
  3. iPhone >
  4. iPhone Indicator導入について
no-image

iPhone Indicator導入について

おはようございます。
西澤です。
涼しい日々が続いておりますね。
急な気候の変化にお体を壊さないようお気をつけ下さいね。

さて、本日はIndicatorのクラスファイルを作成しましたのでそれをご紹介したいと思います。

クラス・メソッドはIndicatorの表示と非表示です。
環境は以下です。
Xcode4.6.3
StoryBoard使用
ARC使用

基本的にはIndicatorの名前でファイルを作成しコピーアンドペーストで使っていたけると思います。
先に必要コードを書いておきます。

Indicator.h
#import <UIKit/UIKit.h>


@interface Indicator : UIActivityIndicatorView{
    UIActivityIndicatorView *indicator;
    UIView *loadingView;
}
#define INDICATORFLAG 1000
#define LOADINGVIEWFLAG 1001

-(void)showActivityIndicator:(UIView *)parentview;
-(void)hideActivityIndicator:(UIView *)parentview;
@end
Indicator.m
#import "Indicator.h"

@implementation Indicator

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

-(void)showActivityIndicator:(UIView *)parentview{
    
    loadingView = [[UIView alloc] initWithFrame:parentview.bounds];
    loadingView.backgroundColor = [UIColor blackColor];
    loadingView.alpha           = 0.5f;
    indicator  = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
    [indicator setCenter:CGPointMake(parentview.bounds.size.width/2, parentview.bounds.size.height/2)];
    indicator.tag = INDICATORFLAG;
    [loadingView addSubview:indicator];
    
    //親画面に追加する
    loadingView.tag = LOADINGVIEWFLAG;
    [parentview addSubview:loadingView];
    [indicator startAnimating];
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
}
-(void)hideActivityIndicator:(UIView *)parentview{
    
    loadingView = (UIView*)[parentview viewWithTag:LOADINGVIEWFLAG];
    indicator = (UIActivityIndicatorView*)[loadingView viewWithTag:INDICATORFLAG];
    [indicator stopAnimating];
    [loadingView removeFromSuperview];
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}


@end
表示するときの呼び出しコード
    [[Indicator alloc]showActivityIndicator:self.view];
非表示にするときの呼び出しコード
    [[Indicator alloc]hideActivityIndicator:self.view];

作成時のポイントはビューにIDを振ることでビューの関連付けをしているところです。
非同期で読み込む際によく使うと思いますので良かったら参考にしてください。

本日はここまで
ありがとうございました。





  • posted by Nextatスタッフ
  • iPhone
TOPに戻る