7

ボタンを作成しようとしています。ボタンをタップすると、別の UIView のポップオーバーが表示されます。これをテストするために、viewDidLoad セクションに次のコードを追加しました。

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.hard1 = [UIButton buttonWithType:UIButtonTypeCustom];
    [self.hard1 setFrame:CGRectMake(884, 524, 105, 60)]; // set the x,y,width and height based on your specs
    UIImage *buttonImage = [UIImage imageNamed:@"green.jpg"];
    hard1.layer.cornerRadius = 10;
    hard1.clipsToBounds = YES;
    [hard1 addTarget: self
              action: @selector(buttonClicked:)
    forControlEvents: UIControlEventTouchUpInside];
    [self.hard1 setImage:buttonImage forState:UIControlStateNormal];
    [self.view addSubview:self.hard1];
}

さらに下:

- (IBAction) buttonClicked: (id)sender
{
    NSLog(@"Tap");
}

ただし、コンソールはボタンを押したときに「タップ」を記録しません。何か案は?

4

3 に答える 3

12

次の 3 行のコードを見てください。

hard1.layer.cornerRadius = 10;
hard1.clipsToBounds = YES;
[hard1 addTarget: self
          action: @selector(buttonClicked:)
forControlEvents: UIControlEventTouchUpInside];

あなたは自分自身が欠けています。3つすべてで。彼らはする必要があります:

self.hard1.layer.cornerRadius = 10;
self.hard1.clipsToBounds = YES;
[self.hard1 addTarget: self
          action: @selector(buttonClicked:)
forControlEvents: UIControlEventTouchUpInside];

また、プログラムで作成する場合は、IBAction であってはなりません (IB はインターフェイス ビルダーを表し、これはインターフェイス ビルダーでは作成されません)。

于 2013-02-24T17:34:29.993 に答える
3
    self.hard1 = [UIButton buttonWithType:UIButtonTypeCustom];


 [hard1 addTarget: self
              action: @selector(buttonClicked:)    forControlEvents: UIControlEventTouchUpInside];

hard1をself.hard1に置き換えます

于 2013-02-24T17:44:59.807 に答える
0

イベント レスポンダを として配置しましbuttonClickedたが、その中IBActionに を定義しbuttonTapました。これは明らかに機能しません...

そのはず

[hard1 addTarget: self
              action: @selector(buttonTap:)
    forControlEvents: UIControlEventTouchUpInside];
于 2013-02-24T17:31:31.867 に答える