Я пытаюсь создать пользовательский UIButton, который простирается от UIButtonType.RoundedRect
.
Моя добавленная функциональность работает, но есть проблема с начальным округленным состоянием границы моей кнопки. Граница моей расширенной кнопки не нарисована до тех пор, пока она не будет использована.
Обновление (24 января 2013 г.): добавлен результат теста красного фона, по просьбе Ричарда Марселла, который заключает только, что нарисован ярлык кнопки. BackgroundColor = UIColor.Red;
Ниже приведен мой исходный код для создания моей пользовательской кнопки.
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 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) { }
}
- Я просто не знаю, как заставить границу правильно рисовать при загрузке представления.
- Мне не нужна кнопка типа
UIButtonType.Custom
, так как я не хочу сама стилизовать кнопку. - Когда я отлаживаю I, тип MyButton правильно установлен на
UIButtonType.RoundedRect
. - Базовые свойства UIButton MyButton (button2) соответствуют свойствам экземпляра UIButton (кнопка1).
Как я могу решить эту проблему?
Обновление (31 января 2013 года): Герман Шонфельд предоставил подходящее решение для этой ошибки.