private void GetImage(TweetCellController controller, Tweet tweet) { controller.ImageView.Alpha = 0.0f; if (!string.IsNullOrEmpty(tweet.AuthorImageUrl)) { if (_images.ContainsKey(tweet.AuthorImageUrl)) { UIImage imageThumbnail = _images[tweet.AuthorImageUrl]; controller.ImageView.Image = imageThumbnail; controller.ImageView.Alpha = 1.0f; } else { controller.AuthorImageUrl = tweet.AuthorImageUrl; ThreadPool.QueueUserWorkItem(RequestImage, controller); } } }
private void RefreshImage(TweetCellController controller) { UIView.BeginAnimations("imageThumbnailTransitionIn"); UIView.SetAnimationDuration(0.5f); controller.ImageView.Alpha = 1.0f; UIView.CommitAnimations(); }
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath) { Tweet tweet = _tvc.Tweets[indexPath.Row]; TweetCellController cellController = null; UITableViewCell cell = tableView.DequeueReusableCell(CELL_ID); if (cell == null) { cellController = new TweetCellController(); NSBundle.MainBundle.LoadNib("TweetCellController", cellController, null); cell = cellController.Cell; cell.Tag = Environment.TickCount + indexPath.Row; cell.SelectionStyle = UITableViewCellSelectionStyle.None; GetImage(cellController, tweet); _tvc.CellControllers.Add(cell.Tag, cellController); } else { cellController = _tvc.CellControllers[cell.Tag]; } if (tweet != null) { // Size and position the text label cellController.TextLabel.Text = tweet.Content; cellController.NameLabel.Text = tweet.AuthorName; cellController.DateLabel.Text = FriendlyDateTime.Get(tweet.Timestamp, DateTime.Now); cellController.TextLabel.Frame = new RectangleF(58, 23, 258 /* 257? */, tweet.LabelSize.Height); } return cell; }