4

我在 .h 文件中有一个这样配置的按钮:

- (IBAction)addBusiness:(id)sender;
@property (weak, nonatomic) IBOutlet UIButton *planBusinessButton;

然后我在我的 .m 文件中执行此操作:

- (IBAction)addBusiness:(id)sender 
{
    NSLog(@"Plan business clicked 1");
}

- (IBAction)planBusinessButton:(id)sender 
{
    NSLog(@"Plan business clicked 1");
}

但在我的 onLoad 我做这样的事情:

CGPoint pt = planBusinessButton.center;
    pt.y -= 275;
    planBusinessButton.center = pt;

问题是当我单击按钮时,按钮单击未在 IBAction 中触发。

按钮位置的更改是否会影响按钮未被点击的原因?

为什么按钮单击不会在 IBAction 中触发?

谢谢!

4

3 回答 3

3

编辑:移动按钮不应影响它的动作触发,除非它已移出视图或位于会拦截点击的其他视图下方。

如果点击没有触发按钮,请检查:

  • IB 连接正确连接
  • 方法存在于适当的位置
  • 为用户交互启用按钮

尽量避免在 viewDidLoad 方法中进行任何视图修改,因为视图还没有准备好......相反,尝试在 viewDidAppear 方法中设置按钮中心。

于 2012-07-30T22:46:45.153 回答
3

可能。手势识别器可能正在处理按钮移动到的位置中的事件,或者可能有另一个视图在新位置阻塞了按钮,您需要将按钮放在前面。此外,如果您希望事件触发它,则应将其放入 viewDidAppear 或 IBAction 中。

于 2012-07-30T22:47:31.450 回答
1

确保您的 planBusinessButton.frame 不在其 super.frame 之外。eg:如果按钮的框架是这样的(0,-200,100,200),当按钮添加到它的超级视图时它不会处理点击事件。

于 2012-07-30T22:48:59.810 回答