菜鸟教程小白 发表于 2022-12-12 21:15:04

ios - 如何使用 SDWebImage


                                            <p><p>我有 <code>UITableViewCell</code> 并在此加载图像,所以我想加载图像并显示激活指示器。这次图像加载时间非常长,所有图像在图像显示在表格 View 后加载。很多时候图像无法加载并且用户 UIInterface 挂起。并且不要在应用程序中处理任何进程。我很累,我使用了 <code>SDWebImage</code> 库。请帮助如何可能,谢谢</p>

<pre><code>#import &#34;UIImageView+WebCache.h&#34;

@interface pictureViewController ()
{
    NSArray*picarray;
    NSArray*titlearray;
    NSArray*idarray;
}

@end

@implementation pictureViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = ;
    if (self) {
      // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    ;
    [[ navigationBar] setTitleTextAttributes:@{NSForegroundColorAttributeName: }];

    [ setBackgroundImage: forBarMetrics:UIBarMetricsDefault];

    _tableview.separatorColor = ;

    NSURLRequest *req=[initWithURL:];
    response =[init];
    ;
}

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    ;
    NSLog(@&#34;error receving data %@&#34;,response);
}

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{

}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
   NSError *error;

   //NSLog(@&#34;Error in receiving data %@&#34;,error);
   NSMutableDictionary *json = ;
   // NSLog(@&#34;response data %@&#34;,json);

      NSArray *results = ;
      picarray = ;
      titlearray = ;
      // NSLog(@&#34;my title is%@&#34;,titlearray);
      idarray=;
      //NSLog(@&#34;my galary id is%@&#34;,idarray);
      ;
}


// Do any additional setup after loading the view, typically from a nib.
- (void)didReceiveMemoryWarning
{
    ;
    // Dispose of any resources that can be recreated.
}

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

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


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // NSLog(@&#34;tableview cell&#34;);
    picture_viewcontrollerCell *cell = ;
    if (cell==nil)
    {
      NSArray *nib = [ loadNibNamed:@&#34;Cell&#34; owner:self options:nil];
      cell = ;
    }

   //NSData* imageData = [ initWithContentsOfURL:]];
    // UIImage* image = [ initWithData:imageData];
    //cell.picture.image =image;

    cell.titlelbl.text=];

    NSURL*url= [valueForKey:@&#34;img_url&#34;];
    ;
    ];


    returncell;
}

@end
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>你应该试试这个(显示activityIndi​​cator & Load Image using <strong>SDWebImage</strong>)-</p>

<pre><code>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // NSLog(@&#34;tableview cell&#34;);
    picture_viewcontrollerCell *cell = ;
    if (cell==nil)
    {
      NSArray *nib = [ loadNibNamed:@&#34;Cell&#34; owner:self options:nil];
      cell = ;
    }

    cell.titlelbl.text=];

    NSURL*url= ]];

    ;

    ;

    ;

    options:indexPath.row == 0 ? SDWebImageRefreshCached : 0];

    returncell;

}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何使用 SDWebImage,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/38368133/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/38368133/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何使用 SDWebImage