Je suis en train de créer un personnalisé UIButton qui s'étend de l' UIButtonType.RoundedRect
.
Mon a ajouté la fonctionnalité est au travail, mais il y a un problème avec la première bordure arrondie état de mon bouton. La frontière de mon extension de bouton n'est pas établi qu'après qu'il a été exploité.
Mise à jour (24 janvier 2013): ajoute le résultat de l'arrière-plan rouge de test, comme demandé par Richard Marskell, qui conclut seulement l'étiquette du bouton est dessiné. BackgroundColor = UIColor.Red;
Ci-dessous mon code source pour la création de mon bouton personnalisé.
public class TestView : UIView
{
public TestView(IntPtr p) : base(p) { }
public TestView(RectangleF bounds)
{
Frame = bounds;
BackgroundColor = UIColor.White;
UIButton button1 = new UIButton(UIButtonType.RoundedRect);
button1.Frame = new RectangleF(20,20,100,50);
button1.SetTitle("Button 1", UIControlState.Normal);
AddSubview(button1); // Drawn Correctly
MyButton button2 = new MyButton();
button2.Frame = new RectangleF(20,90,100,50);
button2.SetTitle("Button 2", UIControlState.Normal);
AddSubview(button2); // Only drawn correctly after Tap
// EDIT: Added to test Miguel's theory
UIButton button3 = UIButton.FromType(UIButtonType.RoundedRect);
button3.Frame = new RectangleF(20,160,100,50);
button3.SetTitle("Button 3", UIControlState.Normal);
AddSubview(button3); // Drawn Correctly
}
}
public class MyButton : UIButton
{
public MyButton() : base(UIButtonType.RoundedRect) { }
}
- Je ne suis pas sûr de savoir comment la force de la frontière à tirer correctement sur le chargement de la vue.
- Je n'ai pas besoin d'un bouton de type
UIButtonType.Custom
, comme je ne veux pas le style le bouton de moi-même. - Quand je debug j'ai le type de MyButton est correctement réglé
UIButtonType.RoundedRect
. - Le UIButton propriétés de base de MyButton (bouton2) correspondent aux propriétés de la UIButton instance (button1).
Comment puis-je résoudre ce problème?
Mise à jour (31 janvier 2013): Herman Schoenfeld a fourni une solution pour ce bug.