2015-07-25 1 views
0

Я пытался каким-то образом, но это не удавалось. Это такие, как:Как показать изображения на столе на студии Xamarin?

  1. cell.ImageView.Image = UIImage.FromFile (tableItems [indexPath.Row] .artwork_url); // artwork_url является изображение на веб-сайте.
  2. cell.ImageView.Image = UIImage.FromFile ("/ Photos/icon100x100.png");
  3. Я не устанавливаю SDKWebimage по nuget на студию xamarin. Это версия 1.0.0.

все пути внизу не запускаются. TableView просто показывает cell.TextLabel.Text = tableItems [indexPath.Row] .title;. Это не изображения.

Я хочу показать это изображения: ell.ImageView.Image = UIImage.FromFile (tableItems [indexPath.Row] .artwork_url); // artwork_url - это изображения на веб-сайте.

Пожалуйста, исправьте это. Я новичок в студии xamarin для ios.

public async override Task<UITableViewCell> GetCell (UITableView tableview, Foundation.NSIndexPath indexPath) 
    { 
     UITableViewCell cell = tableview.DequeueReusableCell (cellIdentifier); 

     if (cell != null) { 
      cell = new UITableViewCell (UITableViewCellStyle.Default, cellIdentifier); 
     } else { 

      cell.ImageView.Image= await this.LoadImage(tableItems[indexPath.Row].artwork_url); 
      cell.TextLabel.Text=tableItems[indexPath.Row].title; 

     } 
     return cell; 
    } 

ответ

1

Вы должны иметь метод асинхронной, чтобы загрузить кулак изображения перед выводом на экран

public async Task<UIImage> LoadImage (string imageUrl) 
    { 
     var httpClient = new HttpClient(); 

     Task<byte[]> contentsTask = httpClient.GetByteArrayAsync (imageUrl); 

     // await! control returns to the caller and the task continues to run on another thread 
     var contents = await contentsTask; 

     // load from bytes 
     return UIImage.LoadFromData (NSData.FromArray (contents)); 
    } 

И вы загрузите изображение с

LoadImage (tableItems [indexPath.Row].artwork_url).ContinueWith((task) => InvokeOnMainThread(() => 
    { 
     cell.ImageView.Image = task.Result; 
    })); 
+0

, который получил сообщение об ошибке: «тип возврата в асинхронном метод должен быть недействительным, Задача или Задача at public async override UITableViewCell GetCell (UITableView tableview, Foundation.NSIndexPath indexPath) –

+0

i t возвращает «ячейку». –

+0

Я обновляю ответ, пожалуйста, еще раз проверьте – iamIcarus

Смежные вопросы