0

私の質問は一般的なものです。私のプロジェクトには、UIButtonButton1、Button2、Button3、Button4、Button5、Button6、Button7、Button8、Button9、および Button10 という名前の 10 個のオブジェクトがあります。

UIImageview1 から 10 までのボタンとまったく同じように名前が付けられたものもあります。

ボタンの最後の文字 (常に 1 から 10 の数字) で画像を操作しUIImageview、同じように影響するコードを書きたい

このようなもの

buttonlastcharacter = i;
    if(sender.lastcharacternumber is:i){
    Button%,i.frame = //Some manipulation

しかし、基本的に私が望むのは、特定のオブジェクトに文字列でアクセスすることだけです

このような動作を実装するにはどうすればよいですか?

4

4 に答える 4

2

これを行うには、いくつかのより良い方法があります。これらのボタンがすべて静的で IB 内にある場合は、画像ビューとボタンに IBCollection 配列を使用して、インデックスを一致させることで簡単に呼び出すことができます。

ボタンまたは画像ビューにタグ値を使用することをお勧めします。

于 2012-07-11T13:56:11.097 に答える
1

IBAction メソッドで次のように実行できます。

- (IBAction)click:(id)sender
{
 UIButton *but = (UIButton *)sender;
 but.frame = your manipulation code;
}

または、次のようなタイトルを確認できます。

if([but.currentTitle isEqualToString:@"Button1])
{
 //Manipulate button 1
}

1〜10のボタンにタグを追加した場合は、使用できます。

if(but.tag == 2)
{
   //Manipulate button 2
}
于 2012-07-11T13:55:20.160 に答える
1

うーん、ボタンに配列を使用し、UIImageView オブジェクトにタグを使用できます。それらはすべて、.tag プロパティを提供する UIView から継承します。タイプは NSInteger* です。

便宜上、ボタンに 0 から 9 までの名前を付けることをお勧めします。特に問題はありませんが、配列の最初のインデックスは 0 になるため、それに応じて名前を付けると作業が簡単になります。

定義

NSArray *buttonArray;

他に何をしたいかによっては、NSMutableArray を選ぶことができます。

viewDidLoad コードでは:

buttonArray = [NSArray arrayWithCapacity:10];
buttonArray[0] = button0;
..
buttonArray[9] = button9;

Interface Builder の XIB ファイル、またはプログラムで UIImage を作成できる場所に、それに応じてタグを追加します。

image0.tag = 0; 
...
image0.tag = 9;

image0 から image9 までの名前を付けたとします。

適切なアクション メソッド コードで:

buttonArray[sender.tag] = someManipulation; 
于 2012-07-11T13:58:02.800 に答える