2017-09-25 2 views
0

J'essaie de sous-classer UIView en utilisant Xamarin mais ne semble pas obtenir les résultats que j'attends. Pour garder les choses simples, j'ai la classe suivante:UIView personnalisé ne fonctionne pas dans Xamarin

using System; 
using CoreGraphics; 
using Foundation; 
using UIKit; 

namespace ExerciseTracker.iOS.Views 
{ 
    [Register("CustomView")] 
    public class CustomView : UIView 
    { 
     public override void Draw(CGRect rect) 
     { 
      base.Draw(rect); 
     } 
    } 
} 

Un point d'arrêt est défini sur la ligne base.Draw(rect);. Une vue existe dans ma mise en page Storyboard avec sa classe définie sur CustomView.

enter image description here

Cependant, lorsque l'application est exécutée et la page est affichée, le point d'arrêt est jamais frappé, et le point d'arrêt, il apparaît comme si elle ne sera jamais frappé.

enter image description here

est d'utiliser Visual Studio pour Mac v7.1.5. Y a-t-il quelque chose qui me manque ici? Il semble que ce devrait être assez simple, mais j'ai été bloqué pendant quelques heures à ce sujet.

Répondre

1

Vous devez ajouter une construction avec IntPtr paramètre dans CustomView classe, comme ceci:

public CustomView(IntPtr p): base(p) 
{ 
    //Your initialization code. 
} 

Ensuite, cette classe peut être utilisé dans storyboard directement.

Plus de détails, vous pouvez vous référer à cette documentation officielle de Xamarin: Walkthrough - Using Custom Controls with the Xamarin Designer for iOS.

+0

Je pensais que j'avais essayé cela précédemment sans succès, mais de toute façon je me suis retrouvé ce soir avec un deuxième fichier partiel 'designer', qui avait ce constructeur ainsi qu'une méthode' ReleaseDesignerOutlets() '. Je ne sais pas pourquoi, mais cela fonctionne maintenant et je n'ose pas essayer beaucoup d'expérimentation à ce stade. –