私は、プログラムでコードのいくつかのボタンをforループで作成しました。ユーザーがこれらのボタンの1つに触れてドラッグすると、ボタンフレームをアニメートして削除したいと思います(アプリを追い出す場合は、通常のOS X Dockの動作と同じです)。UIButtonのフレームをタグで操作する方法は?
私の問題は、ボタンのフレームにアクセスする方法がわかりません:私はボタンのタグしか持っていないので、これはすべて削除メソッドに渡されます。 ボタンのタグしかない場合は、フレームを操作するにはどうすればよいですか?
for (int k=0; k < numberOfTabs; k++) // k < 4 (e.g. 3 < 4)
{
UIButton* btn = [[[UIButton alloc] initWithFrame:frame] autorelease];
btn.tag = k;
btn.frame = CGRectMake(-10, 0, buttonWidth, buttonHeight);
[btn addTarget:self
action:@selector(tabAction:)
forControlEvents:UIControlEventTouchUpInside];
[btn addTarget:self
action:@selector(tabDelete:)
forControlEvents:UIControlEventTouchDragOutside];
...
そして、これはこれまでのところ、私のtabDelete方法である:ここで
は、これまでの私のコードです
-(void)tabDelete:(id)sender
{
NSInteger tid = ((UIControl*)sender).tag;
NSLog(@"buttonTag about to be deleted has the tag: %i", tid);
}
配列にあなたのボタンを入れてください。 –
デリゲートメソッドで、 'sender'パラメータはあなたのボタンです。あなたは 'tag'にアクセスするのと同じ方法で' frame'プロパティにアクセスできます。 – albertamg