RESTful UIButton 操作的用户体验
UX for RESTful UIButton actions
一个 UIButton 触发它的动作(即通过 GET、POST 或 PUT 请求)。该动作是否应该以开头禁用按钮,而结尾再次启用按钮的方式封装?
- (IBAction)buttonTapped:(id)sender {
self.button.enabled = NO;
... RESTful API . . .
self.button.enabled = YES;
}
iOS 中按钮操作的最佳用户体验是什么?
点击按钮会在主线程中执行,所以实现同步调用会给你带来很多问题。执行委托方法(你 class 应该符合协议)或回调取决于你的网络客户端 API.
- (IBAction)buttonTapped:(id)sender {
self.button.enabled = NO;
...
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
...
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
...
self.button.enabled = YES;
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
...
self.button.enabled = YES;
}
例子
我会说,你需要防止调用 REST API 函数两次或更多次,禁用按钮的方法是 feasible/appreciated。
不要忘记使用某种 activity 指标来遵循 Apple 规则。
编辑:这真的取决于你的实现,在这种情况下,我使用 AFNetworking 库来处理 REST API 调用,然后使用异步调用构建函数,当调用成功或失败时,只需释放按钮即可再次活跃起来。
一个 UIButton 触发它的动作(即通过 GET、POST 或 PUT 请求)。该动作是否应该以开头禁用按钮,而结尾再次启用按钮的方式封装?
- (IBAction)buttonTapped:(id)sender {
self.button.enabled = NO;
... RESTful API . . .
self.button.enabled = YES;
}
iOS 中按钮操作的最佳用户体验是什么?
点击按钮会在主线程中执行,所以实现同步调用会给你带来很多问题。执行委托方法(你 class 应该符合协议)或回调取决于你的网络客户端 API.
- (IBAction)buttonTapped:(id)sender {
self.button.enabled = NO;
...
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
...
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
...
self.button.enabled = YES;
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
...
self.button.enabled = YES;
}
例子
我会说,你需要防止调用 REST API 函数两次或更多次,禁用按钮的方法是 feasible/appreciated。 不要忘记使用某种 activity 指标来遵循 Apple 规则。
编辑:这真的取决于你的实现,在这种情况下,我使用 AFNetworking 库来处理 REST API 调用,然后使用异步调用构建函数,当调用成功或失败时,只需释放按钮即可再次活跃起来。