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;
}

例子

  1. NSURLConnection http://codewithchris.com/tutorial-how-to-use-ios-nsurlconnection-by-example
  2. AFNetworking http://www.raywenderlich.com/59255/afnetworking-2-0-tutorial

我会说,你需要防止调用 REST API 函数两次或更多次,禁用按钮的方法是 feasible/appreciated。 不要忘记使用某种 activity 指标来遵循 Apple 规则。

编辑:这真的取决于你的实现,在这种情况下,我使用 AFNetworking 库来处理 REST API 调用,然后使用异步调用构建函数,当调用成功或失败时,只需释放按钮即可再次活跃起来。