0

テーブルビューの各行に 2 つのボタンがあります。1 つは「持っている」、もう 1 つは「欲しい」というラベルが付いています。各ボタンは、アプリの起動時に 20% の不透明度から始まります。1 つのボタンをタップすると、不透明度が 100% に設定されます。1 つのボタンが 100% の不透明度に設定され、もう 1 つのボタンが 20% に設定されてタップされた場合、最初のボタンを 20% に設定し、2 番目のボタンを 100% に設定する必要があるようにロジックが必要です (したがって、不透明度を逆にする必要があります)。 )。

各ボタンには、押されたときに実行される独自のアクションがあります。押されたボタンにアクセスし、(UIButton *senderButton = (UIButton *)sender) で不透明度を設定できます。ただし、他のボタンの不透明度も設定する必要があります。押されたときに呼び出されるアクション/関数内の他のボタン (押されていないボタン) にアクセスするにはどうすればよいですか? ありがとう!

4

2 に答える 2

0

あなたの質問を正しく理解できたら、次のようにヘッダーファイルでボタンを宣言できます。

@interface myController : UIViewController
{
  UIButton *b1;
  UIButton *b2;
}

m-file の tmen (viewDidLoad 内) では、このボタンを 1 つのセレクターと異なるタグで設定できます: (作成ボタンの詳細については、基本的な UIButton をプログラムで作成するにはどうすればよいですか? )

-(void)viewDidLoad
 {
     [super viewDidLoad];

     b1 = [UIButton buttonwithType:UIButtonTypeCustom];
     [b1 addTarget:self withAction:@selector(clickINMyButtons:) forState:UIControlTouchUPInside];  // sorry, I don't remember correct syntax, i'll correct this some later if you needed in it.
     b1.tag = 1;  
     b1.frame = CGRectMake(0,0,12,12); //example
     [self.view addSubView:b1];

 }

同様に、異なる b2 を宣言します。

b2.tag = 2;

したがって、不透明度を変更してセレクターを実装します。

 -(void)clickINMyButtons:(UIButton *)sender
 {
      if (sender.tag == 1)
       {
         sender.alpha = 1; // or b1.alpha = 1;
         b2.alpha = 0.2;
       }
       else if (sender.tag == 2)
       {
         sender.alpha = 1; // or b2.alpha = 1;
         b1.alpha = 0.2;
       }
 }
于 2012-07-15T11:55:33.300 に答える
0

ボタンごとにコンセントを作成できます。コンテナ クラス内の任意の場所からプロパティを設定できるようにします。

于 2012-07-15T02:30:05.260 に答える