【iOS UI】UIAlertViewの代わりにボタン無しでさらっとメッセージを表示して勝手に消えるメッセージ 簡易版 


ちょっとした通知を行うUI、例えばメッセージやインジケーターの表示などをするのにはアラートビューがあります。でもアラートビューってデリゲートセットしたりして色々手間が多くて面倒だと感じることもあります。特にさっと通知して消したい場合などならなおさら。

そこで、そういった通知にはラベルにテキストを設定してアニメーションで通知してます。だいぶ前に作ったものなのでこれをベースにして使いまわしてます。

-(void)message{

    UILabel* label=[[UILabel alloc] initWithFrame:CGRectZero];
    label.frame = CGRectMake(self.view.frame.size.width/2-75,self.view.frame.size.height/2-75, 150, 150);
    label.backgroundColor=[UIColor blackColor];
    label.textColor=[UIColor whiteColor];
    label.text=NSLocalizedString(@"Copy to\nClipBoard!!", @"comment");
    label.numberOfLines=2;
    label.alpha=1;
    label.font=[UIFont fontWithName:@"Arial Rounded MT Bold" size:20];

    label.textAlignment = NSTextAlignmentCenter;
    [self.view addSubview:label];

    CGContextRef context = UIGraphicsGetCurrentContext();
    [UIView beginAnimations:nil context:context];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:1.2f];    // 時間の指定
    [label setAlpha:0.0f];    // アルファチャンネルを0.0fに
    [UIView commitAnimations];

    [label release];

}

UIAlertViewでボタンなしでタイマー動作のようにしたい場合はここが参考になるかと思います。
iphone – Is there a way to dismiss an no button UIalertView after some time? – Stack Overflow

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です