2010-07-14 6 views
0

Je suis impatient d'étendre la classe UIButton pour ajouter ma propriété id.Étendre UIButton dans monotouch

Comment je peux faire ça?

problème est de créer un bouton que vous utilisez

var button = UIButton.FromType(UIButtonType.RoundRect); 

donc, si j'ai

public class MyButton : UIButton 

comment je peux créer mon bouton?

merci.

Répondre

1
class MyButton : UIButton 
{ 
public MyButton(RectangleF rect) : base(rect) {} 

static MyButton FromType(UIButtonType buttonType) 
{ 
    var b = new MyButton (new RectangleF(0, 0, 200, 40)); 
    b.SetTitle("My Button",UIControlState.Normal); 

    //additional customization here 

    return b; 
    } 
} 
+0

Fondamentalement le même que cvista mais en utilisant une méthode d'usine statique pour le rendre plus propre – kwcto

+0

J'ai utilisé votre code, mais il y a une erreur de compilation: Le type MyButton ne contient pas un costructor qui prend 1 arguments. Quelques idées? – Premier

+0

Voir constructeur dans edit. Désolé pour ça. – kwcto

1

Voici comment vous créer votre bouton:

MyButton button = new MyButton (new RectangleF(0, 0, 250, 37)); 
button.SetTitle("My Button",UIControlState.Normal); 

Pour créer un bouton d'un type que vous pouvez essayer:

MyButton button = new MyButton (UIButtonType.RoundRect); 

et voir si elle retourne un bouton du type correct qui hérite de votre classe MyButton - mais j'en doute. Vous devrez peut-être ajouter l'image et la taille vous-même:

UIImage image = UIImage.FromFile("action.png"); 
MyButton button = new MyButton (new RectangleF(0, 0, 250, 37)); 
button.SetBackgroundImage(image,UIControlState.Normal); 

Je ne sais pas s'il y a une autre façon, mais en regardant les docs le UIButton.ButtonType est en lecture seule et il n'y a pas de méthode de SetType de sorte que vous ne pouvez définir une classe UIButton ButtonType propriété en l'instanciant et en passant le type dans le constructeur.

w: //

+0

S'il vous plaît EXPLICT classe MyButton. Merci – Premier

+0

Avec votre premier code suggérer, pas de boutons à l'écran. – Premier

+0

Ok, j'ai ajouté un fond et maintenant je vois des boutons. merci. – Premier