Ios 仅在单击按钮后显示活动指示器
您好,我正在尝试通过单击按钮查看活动指示器。我试过了,但我有一些问题。如果我将活动指示器拖到我的故事板上,但在运行我的应用程序时它是可见的,我希望在单击按钮时显示它。在我的应用程序中,我提供了照片上传选项。所以如果他们点击上传按钮,我想查看活动指示器 这是代码,我已经累了,但它不工作 这是我的h文件,我在其中实现了活动指示器和按钮Ios 仅在单击按钮后显示活动指示器,ios,uiview,uibutton,activity-indicator,Ios,Uiview,Uibutton,Activity Indicator,您好,我正在尝试通过单击按钮查看活动指示器。我试过了,但我有一些问题。如果我将活动指示器拖到我的故事板上,但在运行我的应用程序时它是可见的,我希望在单击按钮时显示它。在我的应用程序中,我提供了照片上传选项。所以如果他们点击上传按钮,我想查看活动指示器 这是代码,我已经累了,但它不工作 这是我的h文件,我在其中实现了活动指示器和按钮 - (IBAction)click:(id)sender; @property (strong, nonatomic) IBOutlet UIActivityInd
- (IBAction)click:(id)sender;
@property (strong, nonatomic) IBOutlet UIActivityIndicatorView *spinner;
这是我在我的m文件中使用的代码
-(void)temp
{
spinner = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner.frame = CGRectMake(0.0, 0.0, 40.0, 40.0);
[spinner setCenter:CGPointMake(480/2.0, 128.0/2)]; // (mid of screen) I do this because I'm in landscape mode
[self.view addSubview:spinner];
[spinner startAnimating];
[spinner release];
}
我在我的按钮中调用这个函数
- (IBAction)click:(id)sender {
[self temp];
}
而且我还有一些其他的问题我看到了代码问题是
[yourView addSubview:spinner];
在yourview中,我给出了uiviewcontroller的名称,但其给出的错误我已改为
[self.view addSubview:spinner];
请告诉我我哪里做错了,正确的方法是什么。。首先感谢您,因为您已经为微调器配置了IBOutlet,所以不要在temp方法中分配新的。修改临时方法,使其如下所示:
-(void)temp
{
spinner.frame = CGRectMake(0.0, 0.0, 40.0, 40.0);
[spinner setCenter:CGPointMake(480/2.0, 128.0/2)]; // (mid of screen) I do this because I'm in landscape mode
[self.view addSubview:spinner];
[spinner startAnimating];
}
假设微调器已连接到视图。 在您的
viewDidLoad
中,您可以设置您的视图,然后当您点击按钮时,它将显示:
- (void)viewDidLoad
{
[super viewDidLoad];
self.spinner = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
self.spinner.frame = CGRectMake(0.0, 0.0, 40.0, 40.0);
[self.spinner setCenter:CGPointMake(480/2.0, 128.0/2)]; // (mid of screen) I do this because I'm in landscape mode
self.spinner.hidden = YES;
}
- (IBAction)click:(id)sender
{
self.spinner.hidden = NO;
[self.spinner startAnimating];
// Additionally you can show spinner in top bar
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
}
- (void)stopSpinner
{
if (self.spinner.isAnimating) {
self.spinner.hidden = YES;
[self.spinner stopAnimating];
// And hide it when you don't need it anymore
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
}
我建议您看看这个答案:重新定位微调器。如果您使用的是界面生成器,如情节提要或XIB,则只需将框架和所有内容本身设置在那里。如果您想在运行时更改它的属性,只需使用您使用的IBOutlet。 您不需要再次实例化,只需使用它的getter和setter来相应地使用它。所以在这里你可以做
- (IBAction)click:(id)sender
{
[self.spinner startAnimating];
}
并在使用前合成微调器
如果您想以编程方式使用它,请从XIB中删除它,并删除与之对应的所有引用。并在.h文件中声明
UIActivityIndicatorView *spinner;
或者你可以做一个财产
@property(nonatomic, strong)UIActivityIndicatorView *spinner;
只需使用您自己的代码。伙计,我遇到了问题…我认为您在白色视图上添加了白色活动指示器,这就是为什么它没有显示出来,但它确实在那里…使用其他样式
UIActivityIndicatorViewStyleGray
-(void)temp
{
spinner = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
spinner.frame = CGRectMake(0.0, 0.0, 40.0, 40.0);
[spinner setCenter:CGPointMake(480/2.0, 128.0/2)]; // (mid of screen) I do this because I'm in landscape mode
[self.view addSubview:spinner];
[spinner startAnimating];
[spinner release];
}
单击该按钮时会发生什么情况?不会发生任何变化活动指示器不工作@SuryakantSharmadid活动指示器根本不显示?如果您的微调器已连接到视图,为什么需要将其添加为子视图?没有意义。或者,您也可以创建一个未连接到视图的新视图。不显示@SuryakantSharmapls告诉您如何在不使用iBootlet的情况下制作。从XIB中完全移除微调器,并使用原始的temp方法。它应该在删除后工作,它的im获取错误,如使用未声明的标识符“微调器”,因此请告诉我在哪里必须声明微调器@Ratikanata Patrainstead of spinner use self.spinnerya我尝试过一个它的给定错误,如对象微调器不在viewcontrolleri中我使用了IBOutlet活动指示器请告诉我如何制作我移除IBOutlet它的显示错误您可以使用情节提要“ctrl+拖动微调器到正确的输出”。@Suryankant Sharama谢谢您的工作,但我希望给活动控制器一段时间的面试。请告诉我如何制作它,我没有收到您的回复。使用-(void)性能选择器:(SEL)带object的选择器:(id)argument afterDelay:(NSTimeInterval)delay;