Próbuję utworzyć niestandardowy UIButton, który rozciąga się od UIButtonType.RoundedRect
.Rozszerzona granica UIButton nie została początkowo narysowana
Moja dodana funkcjonalność działa, ale wystąpił problem z początkowym stanem zaokrąglonej krawędzi mojego przycisku. Obramowanie mojego przedłużonego przycisku nie zostanie narysowane, dopóki nie zostanie dotknięte.
Update (24 stycznia 2013): Dodano wynik testu czerwonym tle, wymagane przez Richarda Marskell, w którym stwierdzono jedynie etykietę przycisku jest rysowany. BackgroundColor = UIColor.Red;
Poniżej jest mój kod źródłowy do tworzenia mój własny przycisk.
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) { }
}
- ja po prostu nie jestem pewien, jakie należy wyciągnąć poprawnie na załadowanie widoku jak zmusić granicę.
- Nie potrzebuję przycisku typu
UIButtonType.Custom
, ponieważ nie chcę sam stylować przycisku. - Po debugowaniu I typ MyButton jest ustawiony prawidłowo na
UIButtonType.RoundedRect
. - Podstawowe właściwości UIButton w MyButton (button2) są zgodne z właściwościami instancji UIButton (przycisk 1).
Jak mogę rozwiązać ten problem?
Aktualizacja (31 stycznia 2013 r.): Herman Schoenfeld dostarczył odpowiednie rozwiązanie dla tego błędu.
+1 za dobrze sformatowane pytanie. – MarioDS
Czy możesz wypróbować metodę UIButton.FromXXX, aby utworzyć przycisk zamiast konstruktora? Aby wypróbować teorię, –
@ miguel.de.icaza Dzięki za rozpatrzenie tego. Próbowałem utworzyć UIButton przy użyciu metody 'UIButton.FromType' i jest ona poprawnie rysowana. Nie jestem pewien, w jaki sposób mam użyć tej metody tworzenia instancji MyButton przy użyciu tej metody. – Scott