很难将 UIActivityIndi​​cator 放入 UIButton

Having hard time placing a UIActivityIndicator inside a UIButton

我在将 UIActivityIndi​​cator 放入 UIButton 时遇到了一些问题。 这是它的样子:

这是我总是得到的:

使用此代码:

  self.activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];

    CGFloat halfButtonHeight = self.updateEventButton.bounds.size.height / 2;
    CGFloat buttonWidth = self.updateEventButton.bounds.size.width;
    self.activityView.center = CGPointMake(buttonWidth - halfButtonHeight , halfButtonHeight);

    [self.subSubView addSubview:self.activityView];
    [self.activityView startAnimating];

我希望指标在右上角的底部。只要看看指示器现在的位置,然后考虑是否将它向下拖动到按钮,然后再向右拖动一点。

以下是我的视图设置方式:

您正在计算与按钮相关联的坐标系中的指示器位置,但随后将其作为子视图添加到不同的视图中,因此坐标不正确。要解决此问题,您可以直接将指示器视图添加到按钮:

[self.updateEventButton addSubview:self.activityView];

或者将按钮坐标系中的点转换成self.subSubView的坐标系再设置到activityView:

CGPoint centerInButton = CGPointMake(buttonWidth - halfButtonHeight, halfButtonHeight);
self.activityView.center = [self.updateEventButton convertPoint:centerInButton
                                                         toView:self.subSubView];