在触摸结束之前按钮的点击事件启动活动指示器的方法?

时间:2011-09-17 10:56:07

标签: iphone objective-c performance uiactivityindicatorview

我正在通过我的应用程序上传图像。我使用了以下代码

-(IBAction)submitimage:(id)sender
{
        // [activity startAnimating]; i started activity here but it starts after completion of function 
    NSString *name, *comments;
    comments = txtcomment.text;
    name = @"Anonymous";
    int r=random()%10000;
    NSLog(@"random number:%d",r );
    NSString *imageName=[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"dashboard\"; filename=\"%d.jpg\"\r\n",r];

    NSData *imageData = UIImageJPEGRepresentation(imge, 90);
        //NSLog(@"imagedata=%@",imageData);
    NSString *urlString =[NSString stringWithFormat:@"http://www.xyzsite.com/webservices/&comment=%@&name=%@",comments,name];



        //NSLog(@"urlsubmit=%@",urlString);
    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:[NSURL URLWithString:urlString]];
    [request setHTTPMethod:@"POST"];
    NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
    [request addValue:contentType forHTTPHeaderField: @"Content-Type"];

    /*  body of the post */
    NSMutableData *body = [NSMutableData data];
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithString:imageName] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[NSData dataWithData:imageData]];
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [request setHTTPBody:body];
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
    NSLog(@"%@",returnString); 
}

但是动画在功能结束后开始,所以有任何其他方式来启动活动指示器。在触摸事件over.i之前,在两个不同的上传图像应用程序中遇到同样的问题。如果有人知道那么请告诉我 感谢

1 个答案:

答案 0 :(得分:2)

这可能有多个解决方案。但是,您可以将活动指示开始动画操作移动到TouchDown事件,并将另一个保留在Touch up Inside中。