5 Stimmen

Problem bei der Verwendung von AsyncImageView in iCarousel in iOS

Ich habe eine App entwickelt, die AsyncImageView und iCarousel verwendet. Aber mein Problem ist, dass wenn ich versuche, die Bilder von URLs zu laden, nur der Aktivitätsindikator in jeder Ansicht meines iCarousel geladen wird und keine Bilder geladen werden. Hier ist mein Code:

 - (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(AsyncImageView *)view
{
if (view == nil)
{
AsyncImageView * view = [[[AsyncImageView alloc]initWithFrame:CGRectMake(0, 0, 300, 280)] autorelease];
view.image=[UIImage imageNamed:@"infobg.png"];
view.imageURL=[imageURLs objectAtIndex:index];
}
return view;
}

2voto

NeverBe Punkte 5156

Zellen sollten wiederverwendet werden

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(AsyncImageView *)view

{
if (view == nil) {
view = [[[AsyncImageView alloc]initWithFrame:CGRectMake(0, 0, 300, 280)] autorelease];
}
// vergessen Sie nicht, das vorherige Laden zu stoppen -cancelLoadingURL: target:

view.image = [UIImage imageNamed:@"infobg.png"];
view.imageURL = [imageURLs objectAtIndex:index];

return view;
}

auch sollten Sie zuvor gestartete

2voto

Vishnu Punkte 2243

Folgen Sie diesen Schritten möglicherweise, weil Sie möglicherweise aus folgenden Gründen auf dieses Problem stoßen

-- Überprüfen Sie, ob Ihr imageURLs-Array unter iCarousel Objekte enthält oder nicht...Wenn es null ist, können Sie dieses Problem haben....

-- Führen Sie eine Array-Zuweisung durch und fügen Sie Objekte hinzu

 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 

Methode, denn wenn Sie Objekte unter viewDidLoad in Ihr Array einfügen, funktioniert es nicht, da die Karussellansicht zuerst geladen wird, bevor die Methode viewDidLoad aufgerufen wird..

-- Wenn Ihr Array-Element auch nach diesen Schritten vorhanden ist, befolgen Sie diesen Code.

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(AsyncImageView *)view
{
view = [[[AsyncImageView alloc]initWithFrame:CGRectMake(0, 0, 300, 280)] autorelease];

view.image=[UIImage imageNamed:@"infobg.png"];
view.imageURL=[imageURLs objectAtIndex:index];

//NSLog(@"%@",imageURLs)//überprüfen Sie, ob imageURLs Objekte enthält

if(view ==nil)
{
    [[AsyncImageLoader sharedLoader]cancelLoadingImagesForTarget:view];
}
return view;

}

Es wird Ihnen helfen..

1voto

user2704002 Punkte 11
- (void)viewDidLoad
{
    [super viewDidLoad];

    User_Id=@"abcd@gmail.com";

    NSString *Post=[NSString stringWithFormat:@"email=%@",User_Id];
    NSData *PostData = [Post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
    NSString *PostLengh=[NSString stringWithFormat:@"%d",[Post length]];
    NSURL *Url=[NSURL URLWithString:[NSString stringWithFormat:@"%@fetch_all_user_updates.php",ServerPath]];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:Url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
    [request setHTTPMethod:@"POST"];
    [request setValue:PostLengh forHTTPHeaderField:@"Content-Lenght"];
    [request setHTTPBody:PostData];

    NSData *ReturnData =[NSURLConnection sendSynchronousRequest:request returningResponse:Nil error:Nil];
    NSString *Response = [[NSString alloc] initWithData:ReturnData encoding:NSUTF8StringEncoding];
    Response = [Response stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
    NSMutableArray *JSON_Array=[Response JSONValue];

// NSlog(@"%@", JSON_Array);
// textfield.text=[[JSON_Array valueforKey:@"email"]objectAtIndex:0];
// load images from database at local host
/*
NSLog(@"%@",[NSString stringWithFormat:@"%@/Images/%@",serverScriptpath,[[jsonarray valueForKey:@"image"]objectAtIndex:0]]);
NSURL *img_url=[NSURL URLWithString:[NSString stringWithFormat:@"%@/Images/%@",
                                     serverScriptpath,[[jsonarray valueForKey:@"image"]objectAtIndex:0]]];

NSURLRequest *request1=[NSURLRequest requestWithURL:img_url];
[Img_profilepic setImageWithURLRequest:request1 placeholderImage:[UIImage imageNamed:@".png"] success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {

} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {

}];
*/

    if (JSON_Array>0)
    {
        Array_Image_Name=[JSON_Array valueForKey:@"image_name"];
        [Array_Image_Name retain];
    }
    else
    {
        UIAlertView *Alert=[[UIAlertView alloc]initWithTitle:@"Failure" message:@"Error To Load Image" delegate:Nil cancelButtonTitle:@"OK" otherButtonTitles:Nil, nil];
        [Alert show];
        [Alert release];
    }
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return Array_Image_Name.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell;
    cell=nil;
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    AsyncImageView *Load_Image=[[AsyncImageView alloc]initWithFrame:CGRectMake(20, 10, 280, 100)];
    Load_Image.imageURL=[NSURL URLWithString:[NSString stringWithFormat:@"%@/Images/%@",ServerPath,[Array_Image_Name objectAtIndex:indexPath.row]]];
    Load_Image.showActivityIndicator=YES;
    [cell.contentView addSubview:Load_Image];
    return cell;
}

0voto

sIphone Punkte 169
AsyncImageView *asyncImage = [[AsyncImageView alloc] initWithFrame:CGRectMake(0.0f, 1.0f, 320.0f, 174.0f)];
NSString *imgUrlString = photobig1;
while ([imgUrlString rangeOfString:@" "].location != NSNotFound) {
    imgUrlString = [imgUrlString stringByReplacingOccurrencesOfString:@" " withString:@""];
}
UIImageView *imageview = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"Loading Image.png"]];
[asyncImage addSubview:imageview];
asyncImage.tag = 999;
NSString *webStr = [NSString stringWithFormat:@"%@",imgUrlString];
NSURL *imageUrl = [[NSURL alloc] initWithString:[webStr stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
[asyncImage loadImageFromURL:imageUrl];
[asyncImage setBackgroundColor:[UIColor clearColor]];
asyncImage.userInteractionEnabled = NO;

[scrollView addSubview:asyncImage];

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X