0

こんにちは私はiPhone用のXcode開発に不慣れで、履歴関数の実装に固執しています。

素人の言葉で言えば、私は

4つのボタン(それぞれに独自の画像があります)

(ボタン1)(ボタン2)(ボタン3)(ボタン4)

および5つのimageviews

(imageview位置1)(imageview位置2)(imageview位置3)(imageview位置4)(imageview位置5)

ボタンがクリックされるたびに(最大5回)、適切な画像ビューに表示される必要があります。

つまり、ボタン4を最初に押すと、画像ビュー1に表示され、ボタン3を2番目に押すと、画像ビュー2に表示されます。

助けていただければ幸いです。

前もって感謝します


更新コード:

viewcontroller.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {


IBOutlet UIImageView *imageview_history_1;
IBOutlet UIImageView *imageview_history_2;
IBOutlet UIImageView *imageview_history_3;
IBOutlet UIImageView *imageview_history_4;
IBOutlet UIImageView *imageview_history_5;

}

// I would think this could be consolidated into one function
-(IBAction)showhistory_1;
-(IBAction)showhistory_2;
-(IBAction)showhistory_3;
-(IBAction)showhistory_4;
-(IBAction)showhistory_5; 

@end



#import ViewController.h"

@interface ViewController ()

@end

@implementation ViewController



// function to add to history
// Need an if/for statement???
// On button event 1 display result at image view_history 1, 
// On button event 2 display result at image view_history 2.

- (IBAction)showhistory_1 {
UIImage *img = [UIImage imageNamed:@"button1"];

[imageview_history_1 setImage:img];

}


@end

//関数の作成に行き詰まっています。再度、感謝します。

4

3 に答える 3

1

まず、xibで、各ボタンにタグ番号を付けて簡単に識別できるようにします。
たとえば、button1に1のタグを付け、button2にタグ2を付けます。

次に、UIButtonアクションをすべて同じ関数を指すように変更します。

.h:

- (IBAction)show_history:(UIButton)sender;

.m:

- (void)setNextHistoryImage:(UIImage *)img {
    if (imageview_history_1.image == nil) {
        imageview_history_1.image = img;
    } else if (imageview_history_2.image == nil) {
        imageview_history_2.image = img;
    }  else if (imageview_history_3.image == nil) {
        imageview_history_3.image = img;
    }  else if (imageview_history_4.image == nil) {
        imageview_history_4.image = img;
    }  else if (imageview_history_5.image == nil) {
        imageview_history_5.image = img;
    }
}

- (IBAction)show_history:(UIButton)sender {
    NSString *imgName = [NSString stringWithFormat:@"button%d", sender.tag];
    UIImage *img      = [UIImage imageNamed:imgName];
    [self setNextHistoryImage:img];
}
于 2012-05-05T05:43:29.157 に答える
0

あなたはこのようにすることができます:

-(IBAction)showhistory_1:(id)sender
{

    if(sender == firstbutton)
    {
       UIImage *img = [UIImage imageNamed:@"button4"];
       [imageview_history_4 setImage:img];
    }
    else if(sender == secondbutton)
    {
       UIImage *img = [UIImage imageNamed:@"button3"];
       [imageview_history_3 setImage:img];
    }
    else if(sender == thirdbutton)
    {
      UIImage *img = [UIImage imageNamed:@"button2"];
      [imageview_history_2 setImage:img];
   }
   else if(sender == fourthbutton)
   {
      UIImage *img = [UIImage imageNamed:@"button1"];
      [imageview_history_1 setImage:img];
   }
}
于 2012-05-05T05:26:54.157 に答える
0

ボタンクリックでimageviewの位置を変更するだけで、1つのことを実行します。このように使用して、その作業が通知されるかどうかを試してください。そうでない場合は、さらに多くの方法を提供します。

  ImageView.frame=CGRectMake(0, 0, 305, 135);

異なる2の位置を使用します。

于 2012-05-05T05:44:22.203 に答える