2012-03-30 23 views
4

Alles, was ich tun möchte, ist die Höhe der einzelnen Zellen zu erhöhen. Ich habe die Höhe in IB und in meinem Code erhöht, aber beide scheinen nicht zu funktionieren. Poicell ist die Klasse für meine benutzerdefinierte uitableviewcell. Im Folgenden ist mein Code:Anpassen der benutzerdefinierten UITableViewCell in Monotouch

public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath) 
{ 
      var cell = tableView.DequeueReusableCell(kCellIdentifier) as PoiCell; 

      if (null == cell) { 

       cell = new PoiCell(); 

       var views = NSBundle.MainBundle.LoadNib("PoiCell", cell, null); 

       cell = Runtime.GetNSObject(views.ValueAt(0)) as PoiCell; 
      } 
      UIImage imgAmenity = UIImage.FromBundle ("Images/ico-ConservationGarden"); 
      UIImage imgRestrooms = UIImage.FromBundle ("Images/ico-restrooms"); 

      RectangleF rectCell = cell.Frame; 
      rectCell.Height = 50; 

      cell.Frame = rectCell; 
      var imageView = new UIImageView(imgAmenity) 
      { 
       Frame = new Rectangle(10, 24, 20, 20) 
      }; 
      var imageView2 = new UIImageView(imgRestrooms) 
      { 
       Frame = new RectangleF(30, 24, 20, 20) 
      }; 
      cell.ContentView.Add(imageView); 
      cell.ContentView.Add(imageView2); 

      cell.Title = _poiFilterController.Posts[indexPath.Row].Title; 
      cell.Distance = _poiFilterController.Posts[indexPath.Row].Distance; 
      cell.Accessory = UITableViewCellAccessory.DetailDisclosureButton; 

      return cell; 

} 

Antwort

6

Sie haben die GetHeightForRow Methode außer Kraft zu setzen und gibt die Höhe, die Sie jede Zeile haben wollen.

public override float GetHeightForRow(UITableView tableView, NSIndexPath indexPath) 
{ 
    return 50f; 
} 
1

Versuchen Zugabe:

cell.SetNeedsDisplay(); 

rechts, bevor Sie in die Zelle zurück. Ich glaube, das war es, was ich tun musste, um es zum Laufen zu bringen.

Verwandte Themen