Как изменить цвет UIButton HighLight с помощью Monotouch? - PullRequest
0 голосов
/ 05 мая 2011

Как изменить цвет UIButton HighLight с помощью Monotouch?

Ответы [ 3 ]

3 голосов
/ 05 мая 2011

Нет прямого способа сделать это. Вы должны создать подкласс UIButton и нарисовать его самостоятельно, когда он выделен. Это простой пример:

public class CustomButton : UIButton
{

    public CustomButton(RectangleF frame)
    {

        this.Frame = frame;
        this.AddObserver(this, new NSString("Highlighted"), NSKeyValueObservingOptions.New, IntPtr.Zero);

    }

    public override void ObserveValue (NSString keyPath, NSObject ofObject, NSDictionary change, IntPtr context)
    {
        if (keyPath.ToString() == "Highlighted")
        {
            this.SetNeedsDisplay();
        }
    }

    public override void Draw (RectangleF rect)
    {
        base.Draw (rect);

        if (this.Highlighted)
        {
            // Draw for highlighted

        } else
        {

            // Draw for normal

        }
    }

}

Я перевел это из этого вопроса, который имеет пример Objective-C: Здесь

1 голос
/ 05 мая 2011

Один из возможных способов сделать это - вам нужно создать выделенное изображение для кнопки и затем использовать:

btn.SetImage(UIImage.FromBundle("Images/btnHighlighted.png"), UIControlState.Highlighted);
0 голосов
/ 11 сентября 2012

Я сделал это в своем предыдущем ответе, чтобы опубликовать, поэтому проверьте ссылку, которую я уже реализовал UIButton HighLigh Color

...