我有一个UIButton,当用户单击按钮时,在其中添加了UIActivtyIndi​​catorView。用户单击标记为“ GO”的UIButton,然后将activityIndi​​cator插入并覆盖“ GO”标题并旋转,直到后台发生的任何事情停止为止。

- (void)going:(UIButton *)button {

NSLog(@"going button pressed");

goingActivity = [[UIActivityIndicatorView alloc]
                 initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
goingActivity.center = button.center;
[button.superview insertSubview:goingActivity aboveSubview:button];
[goingActivity startAnimating];

if ([button.titleLabel.text isEqualToString:@"Go"]) { // Select

    [PFObject saveAllInBackground:save block:^(BOOL success, NSError *error) {

      //Do stuff

        if (success) {

            [self selectGoingButton:button]; // Toggle Button
            selectedGoingToButton = button;

            [defaults synchronize];
            [self reloadData]; // Refresh tableview
        }
    }];
}
else { // Deselect



        if (success) {

            //Toggle button
            selectedGoingToButton = nil;
            [self deselectGoingButton:button];
            [self reloadData];
        }
    }];
}


}

- (void)selectGoingButton:(UIButton *)button {

NSLog(@"GoingButtonselected");
[button setTitle:@"Going" forState:UIControlStateNormal];
button.layer.borderColor = neonBlue.CGColor;
[button setNeedsDisplay];
}


这是处理该问题的代码。我删除了代码的内容,但是所有要做的就是更新解析器和磁盘上的用户信息,因此不相关。问题仍然是,当activityIndi​​cator运行时,前进按钮的标题不会消失(可以看到标题和微调器),然后标题切换为“ GOING”,然后微调器停止。

我想要这样,以便当用户单击按钮时,activityIndi​​cator启动,掩盖按钮标题,然后在后台活动停止时,按钮标题切换为“ GOING”。如何使activityIndi​​catorView覆盖标题层?

编辑:为澄清起见,activityIndi​​cator的位置正确。它位于按钮的中间,在那里可以看到。问题是它没有覆盖标题为“ GO”的按钮的顶层。当我添加activityIndi​​cator子视图时,我希望标题消失,但是在当前代码中没有发生这种情况。

最佳答案

尝试这个

UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
CGFloat halfButtonHeight = btnLogin.bounds.size.height / 2;
CGFloat buttonWidth = btnLogin.bounds.size.width;
indicator.center = CGPointMake(buttonWidth - halfButtonHeight , halfButtonHeight);
[btnLogin addSubview:indicator];
[indicator startAnimating];

关于ios - 将UIActivityIndi​​catorView添加到UIButton的顶 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24803311/

10-09 18:31