1

我正在研究一个KYCircleMenu. 该库仅包含 6 个按钮,但我想要 7 个按钮。我设法在屏幕上再添加一个。唯一的问题是它没有采取行动。

这里是图书馆

这是我制作按钮的方法。

  for (int i = 1; i <= buttonCount_; ++i) {
    UIButton * button = [[UIButton alloc] initWithFrame:buttonOriginFrame_];
    [button setOpaque:NO];
    [button setTag:i];
    imageName = [NSString stringWithFormat:self.buttonImageNameFormat, button.tag];
    [button setImage:[UIImage imageNamed:imageName]
            forState:UIControlStateNormal];
    [button addTarget:self action:@selector(runButtonActions:) forControlEvents:UIControlEventTouchUpInside];
    [self.menu addSubview:button];
  }

runButtonActions仅添加到前 6 个按钮。我的 buttonCount_ 是 7。只有第 7 个按钮什么都不做。

有什么帮助吗?

4

1 回答 1

0

我猜你的按钮在可触摸区域之外。

我试图重现您的代码(是的,我很无聊),当我在演示项目中设置第 7 个按钮时,如下所示:

[self _setButtonWithTag:7 origin:CGPointMake(centerBallMenuHalfSize + triangleB - buttonRadius + 20, centerBallMenuHalfSize + triangleA - buttonRadius+20)];

它工作正常,但是当我设置它时,它只是像这样的其他按钮:

[self _setButtonWithTag:7 origin:CGPointMake(centerBallMenuHalfSize - buttonRadius, centerBallMenuHalfSize + triangleHypotenuse + buttonRadius + 10)];

该操作不起作用。

但是,当我将 200 像素添加到帧高度时(大约第 153 行)

CGRect centerMenuFrame = CGRectMake((viewWidth - menuSize_) / 2, (viewHeight - menuSize_) / 2, menuSize_, menuSize_+200);

它也适用于这种情况。只需为您的按钮位置找出正确的框架,设置它,一切都会按预期工作。

PS:一旦你考虑完成对 KYCircleMenu 的扩展或创建一个分支,这是一个非常好的控件,你的代码可能有助于使它变得更好。

于 2013-04-16T16:21:14.790 回答