【发布时间】:2014-10-30 23:52:03
【问题描述】:
我有一个应用程序,如果正在加载数据,我想让按钮无法点击。如果没有网络活动,则意味着由于所有数据都已加载,因此该按钮应该是可点击的。
你可以在这里看到微调器。左上角。
if b.enabled = 0; if 语句应该是怎样的?是什么让按钮不可点击并使其 1 可点击?
我要输入什么 如果 ( )
【问题讨论】:
我有一个应用程序,如果正在加载数据,我想让按钮无法点击。如果没有网络活动,则意味着由于所有数据都已加载,因此该按钮应该是可点击的。
你可以在这里看到微调器。左上角。
if b.enabled = 0; if 语句应该是怎样的?是什么让按钮不可点击并使其 1 可点击?
我要输入什么 如果 ( )
【问题讨论】:
那个微调器是你的微调器。你不能不知道它是否在旋转,因为你设置它在旋转。因此,询问它是否在旋转是没有意义的。你已经知道了。如果您已将其设置为旋转,则它正在旋转,如果您已将其停止或从未设置它旋转,则它不旋转(并且不存在)。
那个微调器不知道任何关于“数据正在加载”的事情。知道这取决于你。它只是一个旋转器。它没有智慧。
【讨论】:
if ([UIApplication sharedApplication]. isNetworkActivityIndicatorVisible){
//action if data is loading
}
【讨论】:
您在左上角寻找的是: [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; 当然使用 YES 来显示和 NO 来隐藏。
那么我建议您使用 AFNetworking 来处理您的请求,它有一个成功和失败的块,您可以轻松地使用它来启用或禁用您的 UI。
例子:
//DISABLE YOUR UI INTERACTION HERE
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
//ENABLE YOUR UI INTERACTION ONCE REQUEST IS DONE AND SUCCESSFUL
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
//ENABLE YOUR UI INTERACTION ONCE REQUEST IS DONE BUT FAILED
}];
【讨论】: