2011-10-23 36 views
0

我有一个简单的问题,但我不知道为什么它不起作用。 我以编程方式创建了一个按钮,我想将方法​​“backLogin”添加到该操作。 奇怪的是,我没有得到任何错误,但按钮不会以任何方式回应。我在互联网上看到的任何地方,这段代码都应该可以工作。 任何想法我做错了什么?自行创建的按钮后面的操作不起作用。

-(void) loginAppear{ 

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
myButton.frame = CGRectMake(20, 20, 75, 37); // position in the parent view and set the size of the button 
[myButton setTitle:@"Back" forState:UIControlStateNormal]; 
// add targets and actions 
[myButton addTarget:self action:@selector(backLogin) forControlEvents:UIControlEventTouchUpInside]; 
// add to a view 
[myButton setAlpha:1]; 
[loginImage addSubview:myButton];  
} 

后面 “backLogin” 的代码已经先后在其他情况:不是添加到为myButton的loginImage

-(void) backLogin{ 

CALayer *layer = loginImage.layer;  

//spin frame 
CABasicAnimation *anim1 = 
[CABasicAnimation animationWithKeyPath: @"transform" ]; 
anim1.toValue = [ NSValue valueWithCATransform3D: 
       CATransform3DMakeRotation(180 * M_PI, 0.0, 1.0, 0) ]; 
anim1.duration = .2; 
anim1.cumulative = YES; 
anim1.repeatCount = 1; 
[layer addAnimation: anim1 forKey: @"transformAnimation" ];  

} 
+0

你试过在你的backLogin方法中放一个NSLog,来确认是否调用该方法......也许这里的代码不工作 – Quirin

+0

什么是loginImage?你有没有看到按钮被按下的视觉指示? –

+0

你好,loginImage是一个UIImageView实例。我现在会尝试NSLog .. – Trace

回答

0

,尝试将其添加到主视图(如[self.view addSubview:为myButton ])。您可能需要更改框架坐标以正确定位按钮。

+0

谢谢!现在,我得到我的按钮的反应,但一个错误; [loginViewController backLogin:]:无法识别的选择发送到实例0x1ad2c0虽然我没有看到任何错误...? – Trace

+0

:[loginViewController backLogin:]似乎表明它期望backLogin是一个接受一个参数的函数。也许你需要: - (void)backLogin:(UIButton *)sender。对于addTarget调用,使用@selector(backLogin :)。 –

+0

更好的是,改回backLogin为: - (void)backLogin:(id)sender –