Hatena::Groupiphone-dev

Ni chicha, ni limona - 平均から抜けられない僕

2009-07-30

[iPhone][tips] UIAlertViewを別の場所に表示させる方法。 11:05  [iPhone][tips] UIAlertViewを別の場所に表示させる方法。 - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク -  [iPhone][tips] UIAlertViewを別の場所に表示させる方法。 - Ni chicha, ni limona - 平均から抜けられない僕  [iPhone][tips] UIAlertViewを別の場所に表示させる方法。 - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

UIAlertViewを使って表示させるUIを、任意の場所に表示させる方法です。元ネタは「Move alert(UIAlertView)」です。


方法はとても簡単で、UIAlertViewをインスタンス化した後にアフィン変換をかけてあげるだけ。

サンプルソースは以下のとおりです。ここではView-Based Applicationのコントローラクラスに作成しました。


@implementation MoveAlertViewController

- (void)viewDidLoad {
	// ボタンのタイプを指定できるメソッドがコンビニエンスメソッドしかないので、
	// 他のUIと同じ操作をすべく敢えてretainしています(なくても動作します。その場合は下のreleaseを削除)。
	UIButton *aButton = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
	aButton.frame = CGRectMake(105,180, 115, 35);
	[aButton setTitle:@"Tap" forState:UIControlStateNormal];
	[aButton addTarget:self	action:@selector(buttonPressed:)
	  forControlEvents:UIControlEventTouchUpInside];
	[self.view addSubview:aButton];
	[aButton release];
	
    [super viewDidLoad];
}

- (void)dealloc {
    [super dealloc];
}

- (IBAction)buttonPressed:(id)sender {
	UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert"
                                                    message:@"Alert"
                                                    delegate:self
                                                    cancelButtonTitle:@"OK"
                                                    otherButtonTitles:@"NG",nil];
	// 後半2つの引数がx,yの移動量です。デフォルトの場所が0,0(->alert.transform)です。
	//  - この場合は「左へ200px, 上へ100px」です
	alert.transform = CGAffineTransformTranslate( alert.transform, 200.0, 100.0 );
	[alert show];
}

- (void)alertView:(UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex {
	// do nothing.
}
@end

実行結果はこちら。


   f:id:paella:20090730110247j:image:h300

      OKが押せません・・・


使いどころはというと、・・・えーと、タブやツールバーなどで、操作画面の中央がずれているような場合に使えるのではないかと思います。

ご参考まで。

NonikNonik2012/08/08 20:22Your post is a teilmy contribution to the debate

dhfgdpnxxedhfgdpnxxe2012/08/10 03:46h8aCyQ <a href="http://tpvtkqcvnqsn.com/">tpvtkqcvnqsn</a>